update-java-thay thế vs update-thay thế --config java


96

Trên Ubuntu 12.04 LTS, tôi đã cài đặt JDK7, Eclipse và Arduino IDE của Sun. Tôi muốn Arduino sử dụng OpenJDK 6 và muốn Eclipse sử dụng JDK 7 của Sun.

Theo hiểu biết của tôi, tôi cần phải chọn thủ công Java nào trước khi chạy từng ứng dụng. Điều này dẫn tôi đến update-java-alternatives -llệnh. Khi tôi chạy này, tôi chỉ thấy như sau:

java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64

nhưng khi tôi chạy update-alternatives --config javatôi thấy như sau:

*0  /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   auto mode
1  /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   manual mode
2  /usr/lib/jvm/jdk1.7.0/bin/java                   manual mode
3  /usr/lib/jvm/jre1.7.0/bin/java                   manual mode

Tôi không hiểu tại sao update-java-alternativeskhông hiển thị 3 tùy chọn giống nhau. Tôi cũng không hiểu cách chuyển đổi giữa OpenJDK6 và JDK7. Làm thế nào tôi có thể sử dụng OpenJDK6 để phát triển Arduino và Sun JDK7 cho phát triển Eclipse / Android?

Câu trả lời:


126

sudo update-alternatives --config java

Định cấu hình mặc định cho chương trình "java". Đó là máy ảo Java.

sudo update-alternatives --config javac

Định cấu hình trình biên dịch Java mặc định.

Bạn cũng có thể thấy điều đó, bởi vì lệnh đầu tiên liệt kê rất nhiều thư mục "JRE" (Môi trường chạy thi hành Java) và Chương trình chỉ được gọi là "java".

Nếu tôi kiểm tra phiên bản nào đang được sử dụng bằng cách phát lệnh java -version hoặc javac -version, tôi có thể thấy rằng mỗi lệnh thay đổi chương trình đang được sử dụng.

Tuy nhiên, sử dụng update-java-alternativesvới Phiên bản JDK thay đổi cả hai chương trình cho tôi. Sử dụng các lệnh đầu tiên, bạn có thể sử dụng Java VM và Trình biên dịch Java từ các JDK khác nhau.

update-java-thay thế yêu cầu sự hiện diện của một tệp có phần mở rộng .jinfo trong thư mục / usr / lib / jvm. Gói opendjk được vận chuyển với tệp .jinfo, jdk của Oracle (trước đây là Sun) thì không. Thay thế, bạn định cấu hình các lựa chọn thay thế mà không cần cập nhật-java-thay thế :

Ví dụ: để thêm java từ thư mục jvm /usr/lib/jvm/jdk-12.0.1 ( thư mục mặc định của gói Debian của Oracle ) với mức độ ưu tiên 2082, hãy sử dụng lệnh sau:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-12.0.1/bin/java 2082

Đối với chuyển đổi cho các môi trường phát triển khác nhau:

Bạn đang nói về việc bắt đầu IDE với các phiên bản Java khác nhau hoặc sử dụng các phiên bản khác nhau trong IDE để biên dịch và chạy ứng dụng của bạn?

Đối với 1.: Bạn có thể chỉ định JVM nào sẽ sử dụng trong eclipse.ini, như được mô tả ở đây . Tôi không biết làm thế nào để làm điều đó cho Arduino IDE.

Đối với 2.: Trong Eclipse, bạn có thể chọn JRE / JDK sẽ được sử dụng trong Window -> Preferences -> Java -> JREs đã cài đặt. Và trong Java -> Trình biên dịch, bạn có thể chọn tuân thủ Java cũ hơn nếu muốn.

EDIT: Trang DigitalOcean này cũng có một lời giải thích rất hay về mọi thứ liên quan đến Java trên Ubuntu.


15

update-java-alternativeslà một chương trình để cập nhật các lựa chọn thay thế cho việc jre/jdkcài đặt.

update-alternatives là một hệ thống quản lý liên kết tượng trưng cho linux (Tôi chắc chắn có rất ít tin tức ở đây).

Bạn có thể, và thực sự nên, sử dụng cả hai update-java-alternativesupdate-alternativescùng nhau.

Đầu tiên, hãy chắc chắn rằng tất cả các lựa chọn thay thế được cấu hình chính xác. java và javac là một vài. Có javadoc, rmic, serialvervà những người khác, thay thế các biến trên cho: native2ascii/opt/jdk1.8.0_40/bin/native2asciiphải báo cáo nếu thay thế được cài đặt và / hoặc được chọn.

Khi tất cả các lựa chọn thay thế được cấu hình, sau đó bạn có thể tạo các liên kết /usr/lib/jvmđến phần cài đặt thủ công của bạn.

Để định cấu hình, update-java-alternativesbạn phải sử dụng một tệp ẩn có cùng tên với thư mục của bạn nhưng có tiền tố là a. (chấm).

Hi vọng điêu nay co ich.

Thư mục

man -S 8 update-java-alternatives

http://tech.lanesnotes.com/2008/03/USE-alternigin-in-linux-to-use.html

https://stackoverflow.com/questions/6477415/how-to-set-oracles-java-as-the-default-java-in-ub Ubuntu

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.