Lệnh để xem tất cả các phiên bản java được cài đặt trên linux là gì?


36

Tôi biết về java -version. Tôi không quan tâm phiên bản nào tôi đang chạy. Tôi quan tâm những phiên bản khác được cài đặt trên hộp linux của tôi. Nếu đó là một lệnh java - * khác thì tôi đã không thấy nó trong java -help.

Tôi đã thử googling nó nhưng câu trả lời là cho Windows hoặc họ nói "sử dụng java -version." Tôi biết tôi đã làm điều này trước đây.

Câu trả lời:


50

Trên hầu hết các bản phân phối Linux, bạn có thể sử dụng update-alternativesnhư thế này:

sudo update-alternatives --config java

Nó sẽ liệt kê tất cả các gói cung cấp lệnh java và sẽ cho phép bạn thay đổi nó. Nếu bạn không muốn thay đổi nó, chỉ cần Ctrl-Ctừ nó.

Chỉ có một nhược điểm - nếu bạn đã cài đặt một số javakhông sử dụng trình quản lý gói chính thức ( dpkg/ apt-get, rpm/ yum), nhưng chỉ cần trích xuất nó, các lựa chọn thay thế cập nhật sẽ không hiển thị.


2
Bất kỳ lý do không sử dụng update-alternatives --list javachỉ để liệt kê chúng?
Xiao

4
@Xiao: thật không may, không phải tất cả các phiên bản cập nhật thay thế đều có --listtùy chọn. ví dụ như Centos 6.7 không.
mvp

1
Trong RHEL 7, --list tồn tại, nhưng không lấy bất kỳ tham số nào khác, vì vậy bạn phải| grep java
Dmitri

4

Bạn có thể làm:

find / -name java 

Để tìm tất cả các tập tin. Trình quản lý gói với phiên bản Linux của bạn cũng có thể liệt kê chúng.


3
"Trình quản lý gói" ... Trừ khi có ai đó cài đặt phiên bản java theo cách thủ công. Tìm là một cách tiếp cận hợp lệ, mặc dù :) find / -type f -name java -print 2> / dev / null | xargs -i echo {} -version | bash
tink

@tink Làm thế nào một người có thể sử dụng find với xargs nhưng thêm một dòng trống giữa mỗi kết quả phiên bản khi có nhiều tệp thực thi 'java'?
Lee Meador

@LeeMeadorfind /usr -type f -name java -print 2>/dev/null | xargs -i echo {} -version | bash 2>&1 | sed ':a;N;$!ba;s/\n/\n\n/g'
tink

1

Bạn để lại rất nhiều điều mong muốn khi có thông tin chi tiết về thiết lập của bạn. Java có thể được cài đặt theo nhiều cách khác nhau trong linux. Bạn có thể cài đặt thông qua maanger gói phân phối của mình, như apt, yum, yast hoặc bạn có thể cài đặt thủ công.

Trong bao giờ bạn đã cài đặt nó thì cài đặt Java cần có khả năng thực thi java để thực hiện bất kỳ hoạt động tốt nào trong hầu hết các trường hợp, vì vậy bạn có thể sử dụng các lệnh định vị hoặc tìm để tìm các lệnh khác nhau.

Ví dụ rất có thể sẽ tìm thấy các liên kết và trùng lặp, nhưng tên thư mục sẽ giúp bạn xác định chính xác:

for f in $(locate -ber '^java$'); do test -x && echo "$f"; done

1

Tôi sử dụng điều này để liệt kê các bản cài đặt Java có sẵn:

sudo update-alternatives --display java

bash: update-alternatives: command not found?
Jimmy Obonyo Abor

1

Trước đây tôi đã sử dụng cách sau để xác định cài đặt java 8 cho một ứng dụng cần đặt biến môi trường để nó có thể sử dụng phiên bản java không được đặt làm mặc định:

update-java-alternatives -l java-8-oracle

Tuy nhiên, điều đó đã ngừng hoạt động ngày hôm nay. Tập update-java-alternativeslệnh / chương trình không còn được cài đặt trên hệ thống Ubuntu 14.04 của tôi. Những gì được cài đặt bây giờ là alternatives.

Những gì tôi sử dụng bây giờ để có được một đường dẫn java thay thế cụ thể là:

alternatives --display java | grep priority | grep jdk-1.8

Sau đó, tôi có thể xoa bóp kết quả để có được những gì tôi cần cho biến môi trường của ứng dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.