Gói .deb cho Ubuntu: phát hiện phiên bản Java ưa thích


0

Xem thêm câu hỏi liên quan của tôi .

Ứng dụng Java của chúng tôi chạy với Java 1.6 trở lên, nhưng chúng tôi thích 1.7 (vì một số tính năng bổ sung nhất định). Khi khởi chạy, làm cách nào tôi có thể phát hiện xem JRE 1.7 đã được cài đặt chưa và chỉ sử dụng JRE 1.6 đã cài đặt làm dự phòng? Từ chuỗi liên kết tượng trưng bắt đầu, which javacó vẻ như người dùng chỉ có thể quyết định cho Java 1.6 hoặc 1.7.

Câu trả lời:


1

Khi khởi chạy, bạn nên sử dụng bất cứ thứ gì người dùng đã cấu hình là JRE trên hệ thống của mình. Nếu 1.7 được ưu tiên đủ mạnh để bạn muốn bỏ qua JRE đã chọn của người dùng và sử dụng 1.7, thì bạn chỉ nên phụ thuộc vào 1.7.

Nhìn chung, đây là một trường hợp hiếm hoi mà người dùng đã cài đặt cả 1.6 1.7 và javachỉ đến 1.6. Nếu đó là trường hợp, họ phải tự cấu hình symlink để trỏ đến 1.6 và bạn nên tôn trọng điều đó. Nếu bạn cài đặt 1.7, theo mặc định, javaliên kết sẽ được cập nhật để trỏ đến 1.7.


+1, có vẻ rất hợp lý. Thông báo cho người dùng về tình huống và để lại quyết định cho người dùng nên là cách đi đúng đắn nói chung. Nó cũng có vẻ như là giải pháp không an toàn nhất trong quá trình nâng cấp phiên bản trong tương lai và trên các hệ thống khác nhau.
Daniel Andersson

Thật không may, đây không phải là trường hợp hiếm gặp, do lỗi cài đặt openjdk-7-jre-headlesstự động được cài đặt openjdk-6-jre-headless... Ngoài ra, người dùng có thể đã chuyển phiên bản Java của mình sang 1.6 vì một ứng dụng khác cần nó.
Thomas S.

@Thomas. Tập lệnh khởi chạy của ứng dụng của bạn nên xem giá trị của biến môi trường JAVA_HOMEvà cấu hình cho ứng dụng của bạn (sẽ được tải bởi tập lệnh khởi chạy) sẽ cho phép người dùng ghi đè JAVA_HOMEnếu họ cần khởi chạy chương trình của bạn bằng một JRE cụ thể. Mặt khác, bạn nên sử dụng bất cứ thứ gì được cấu hình làm JRE mặc định trên hệ thống của họ vì đó là những gì người dùng sẽ mong đợi. Hãy xem cách Eclipse và IntelliJ và hầu hết các chương trình java lớn khác trên linux hoạt động.
Darth Android

@Thomas. Tôi đã không nói rằng rất hiếm khi có hai JRE, tôi đã nói rằng rất hiếm khi có hai JRE và để javaliên kết tượng trưng chỉ đến cái cũ hơn. Các JRE mới hơn có mức độ ưu tiên cao hơn khi javaliên kết tượng trưng được đặt thành tự động định cấu hình. Quan điểm của tôi là, nếu tôi đã cấu hình javađể chạy JRE6 và tôi chưa thêm cấu hình bổ sung vào ứng dụng của bạn để chạy với JRE khác, thì bạn nên chạy với JRE6, ngay cả khi tôi đã cài đặt JRE7 hoặc JRE8.
Darth Android

JAVA_HOME có được đảm bảo được đặt bởi các gói JRE khác nhau không?
Thomas S.
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.