pembaruan-java-alternatif vs pembaruan-alternatif --config java

96

Di Ubuntu 12,04 LTS saya telah menginstal Sun's JDK7, Eclipse, dan Arduino IDE. Saya ingin Arduino menggunakan OpenJDK 6 dan ingin Eclipse menggunakan Sun's JDK 7.

Dari pemahaman saya, saya perlu secara manual memilih Java mana yang akan digunakan sebelum menjalankan setiap aplikasi. Ini menuntun saya ke update-java-alternatives -lperintah. Ketika saya menjalankan ini, saya hanya melihat yang berikut ini:

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

tetapi ketika saya menjalankan update-alternatives --config javasaya melihat yang berikut:

*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

Saya tidak mengerti mengapa update-java-alternativestidak menampilkan 3 opsi yang sama. Saya juga tidak mengerti bagaimana cara beralih antara OpenJDK6 dan JDK7. Bagaimana saya bisa menggunakan OpenJDK6 untuk pengembangan Arduino dan Sun JDK7 untuk pengembangan Eclipse / Android?

Stan Smith
sumber

Jawaban:

126

sudo update-alternatives --config java

Mengkonfigurasi default untuk program "java". Itu Java VM.

sudo update-alternatives --config javac

Mengkonfigurasi kompiler Java default.

Anda juga dapat melihat itu, karena perintah pertama berisi banyak folder "JRE" (Java Runtime Environment) dan Program hanya disebut "java".

Jika saya memeriksa versi mana yang digunakan dengan mengeluarkan perintah java -version atau javac -version, saya bisa melihat, bahwa setiap perintah mengubah program yang digunakan.

Namun, menggunakan update-java-alternativesdengan Versi JDK mengubah kedua program untuk saya. Menggunakan perintah pertama, Anda bisa menggunakan Java VM dan Java Compiler dari JDK yang berbeda.

pembaruan-java-alternatif membutuhkan keberadaan file dengan ekstensi .jinfo di direktori / usr / lib / jvm. Paket opendjk dikirimkan dengan file .jinfo, jdk dari Oracle (sebelumnya Sun) tidak. Sebagai alternatif, Anda mengonfigurasi alternatif tanpa pembaruan-java-alternatif :

Misalnya, untuk menambahkan java dari direktori jvm /usr/lib/jvm/jdk-12.0.1 ( direktori default paket Debian Oracle ) dengan prioritas 2082, gunakan perintah berikut:

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

Adapun beralih untuk lingkungan pengembangan yang berbeda:

Apakah Anda berbicara tentang memulai IDE itu sendiri dengan versi Java yang berbeda atau menggunakan versi yang berbeda di IDE untuk kompilasi dan menjalankan aplikasi Anda?

Untuk 1 .: Anda dapat menentukan JVM mana yang akan digunakan dalam eclipse.ini, seperti yang dijelaskan di sini . Saya tidak tahu bagaimana melakukan itu untuk Arduino IDE.

Untuk 2 .: Dalam Eclipse Anda dapat memilih JRE / JDK untuk digunakan di Window -> Preferences -> Java -> Installed JREs. Dan di bawah Java -> Compiler Anda dapat memilih kepatuhan Java yang lebih lama jika Anda mau.

EDIT: Halaman DigitalOcean ini juga memiliki penjelasan yang sangat bagus tentang segala sesuatu yang berkaitan dengan Java di Ubuntu.

Benjamin Maurer
sumber
15

update-java-alternativesadalah program untuk memperbarui alternatif untuk jre/jdkinstalasi.

update-alternatives adalah sistem manajemen tautan simbolis untuk linux (saya yakin ada sedikit berita di sini).

Anda dapat, dan benar-benar harus, menggunakan keduanya update-java-alternativesdanupdate-alternatives bersama sama.

Pertama, pastikan semua alternatif dikonfigurasi dengan benar. java dan javac hanyalah beberapa. Ada javadoc, rmic, serialverdan lain-lain, mengganti variabel di atas untuk: native2asciidan/opt/jdk1.8.0_40/bin/native2ascii harus melaporkan jika alternatif diinstal dan / atau dipilih.

Setelah semua alternatif dikonfigurasi, Anda dapat membuat tautan /usr/lib/jvm ke instalasi manual Anda.

Untuk mengonfigurasi update-java-alternatives Anda harus menggunakan file tersembunyi dengan nama yang sama dengan direktori Anda tetapi diawali oleh a. (dot).

Semoga ini membantu.

Bibliografi

man -S 8 update-java-alternatives

http://tech.lanesnotes.com/2008/03/using-alternatives-in-linux-to-use.html

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

fmmarques
sumber