Tetapkan JDK 8 sebagai Java default pada Debian 8


8

Saya mencoba untuk mengatur alat Java SDK 8 (diinstal dari repo backports debian) sebagai default.

# update-java-alternatives --list
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

# update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64
update-alternatives: error: no alternatives for mozilla-javaplugin.so
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

Hum, selain kesalahan itu (yang saya percayai hanyalah peringatan menurut /ubuntu/141791/is-there-a-way-to-update-all-java-related- alternatif . Jika tidak, saya tidak tahu bagaimana cara memperbaikinya, karena tidak ada plugin icedtea untuk jdk8 yang bisa saya lihat), ini seharusnya sudah melakukan trik, kan?

Tetapi banyak alat Java masih menunjuk ke Java 7:

# update-alternatives --get-selections | grep java
appletviewer                   manual   /usr/lib/jvm/java-8-openjdk-amd64/bin/appletviewer
extcheck                       auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/extcheck
idlj                           auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/idlj
jar                            auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/jar
jarsigner                      auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/jarsigner
java                           manual   /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
javac                          auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/javac
javadoc                        auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/javadoc
...

Apa yang menyebabkannya? Rusak?

EDIT:

Mengatasi hal ini dengan:

for i in `update-alternatives --get-selections | grep java | awk '{print $1}'`; do update-alternatives --config $i; done

Ini secara manual akan meminta Anda untuk setiap alat. Yang membutuhkan waktu sekitar satu menit. Tetap saja, saya ingin tahu apakah ada cara yang lebih baik.

Jawaban:


5

update-java-alternativesmemiliki opsi untuk memperbarui --jre-headless, --jredan --pluginsecara terpisah.

Menggunakan

sudo update-java-alternatives --jre-headless --jre --set java-1.8.0-openjdk-amd64

bekerja untuk saya di server Debian Jessie tanpa plugin terpasang.


4

Di ubuntu, JDK1.8 tidak tetap diinstal secara default. Ketika Anda mendaftar untuk alternatif java

$ update-java-alternatives -l
java-1.11.0-openjdk-amd64      1101       /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
java-7-oracle                  1082       /usr/lib/jvm/java-7-oracle

java-1.8.0-openjdk-amd64dalam daftar ini bukan JDK, tetapi JRE sebagai gantinya . JRE tidak mengandung semua alat pengembangan yang diperlukan seperti javac, javadoc, dll. Anda dapat memverifikasi apakah direktori bin berisi file-file ini. Ini adalah alasan tidak mendaftarkan alat-alat ini.

Jadi, pertama Anda harus menginstal JDK

sudo apt install openjdk-8-jdk

Lalu ubah alternatifnya

sudo update-java-alternatives -s java-1.8.0-openjdk-amd64

2

Cara termudah untuk mencapai ini di Debian menggunakan perintah ini

update-alternatives --config java

Maka Anda akan mendapatkan output seperti ini:

*0  /usr/lib/jvm/java-8-openjdk-amd64/bin/java  auto mode
 1  /usr/lib/jvm/jdk1.7.0/bin/java              manual mode

Kemudian Anda dapat mengubah pilihan default Anda (ditandai dengan "*") dengan mengetikkan nomor indeks. Misalnya Anda memilih "1" untuk menggunakan Java 7 sebagai JVM default. Anda dapat menjalankan perintah lagi untuk memeriksa perubahan.

Semoga ini bisa membantu.


1

Untuk Linux (mis. Debian):

# update-alternatives --config java
# update-alternatives --config javac
# update-alternatives --config javaws

Contoh:

$ sudo update-alternatives --config java
There are 4 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-10-oracle/bin/java             1091      auto mode
* 1            /usr/lib/jvm/java-10-oracle/bin/java             1091      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  3            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      manual mode
  4            /usr/lib/jvm/jdk1.7.0_80/bin/java                1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in manual mode

0

Anda harus mengubah variabel home java untuk java 8 di file di bawah ini

  'vi /etc/environment'

Dalam format ini

JAVA_HOME- / usr / lib / jvm / java-8-oracle

Muat ulang file konfigurasi menggunakan

'. /etc/environment'

Dan konfirmasikan dengan ini

   echo  $JAVA_HOME
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.