GNU/Linux >> Belajar Linux >  >> Linux

Perintah "java" tidak menjalankan JVM yang telah diinstal

Masalahnya

JDK/JRE dari Oracle telah diinstal pada mesin Linux sesuai dengan instruksi instalasi. Perintah "java" tidak menjalankan JVM yang telah diinstal. Aplikasi Java dapat gagal dijalankan jika Java Runtime Environment yang tidak terduga ditemukan.

Contoh dari server Red Hat:

$ java -version
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.4) (rhel-1.21.b17.el6-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

Penafian :Direktori dan jalur yang digunakan dalam artikel ini mewakili nama sampel fiktif yang menjadi contoh. Kesamaan dengan kode yang sebenarnya adalah murni kebetulan dan tidak dimaksudkan dengan cara lain.

Solusinya

JDK/JRE baru dari Oracle telah diinstal sesuai dengan instruksi instalasi. Contoh dari server Red Hat:

# rpm -ivh jdk-7u6-linux-x64.rpm

Perintah "java" biasanya merupakan tautan simbolis di /usr/bin yang menunjuk (langsung atau tidak langsung) ke Java yang sebenarnya dapat dieksekusi. Biasanya /usr/bin adalah salah satu entri pertama dalam variabel lingkungan PATH dan oleh karena itu /usr/bin/java biasanya yang ditemukan pertama kali jika Java diluncurkan.

Untuk kemungkinan solusi berikut, anggap saja Anda telah menginstal JDK di /usr/java/jdk1.7.0_06/.

Solusi 1:Ubah PATH

Ubah variabel lingkungan PATH sehingga Oracle JRE/JDK baru dapat ditemukan sebelum JRE lain dapat ditemukan.

Misalnya:

$ export PATH=/usr/java/jdk1.7.0_06/bin:$PATH
$ java -version
java version "1.7.0_06"
Java(TM) SE Runtime Environment (build 1.7.0_06-b24)
Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)

Solusi 2:Gunakan jalur absolut

Gunakan jalur absolut penuh ke Oracle JRE/JDK yang baru diinstal untuk menjalankan aplikasi Java.

Misalnya:

$ /usr/java/jdk1.7.0_06/bin/java -version
java version "1.7.0_06"
Java(TM) SE Runtime Environment (build 1.7.0_06-b24)
Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)

Solusi 3:Gunakan pembaruan-alternatif

Gunakan perintah yang disebut update-alternatives untuk memberi tahu Linux di mana menemukan Oracle JRE/JDK yang baru saja Anda instal.

Catatan :memperbaiki symlink secara manual seperti /usr/bin/java atau /etc/alternatives/java dapat menyebabkan perintah update-alternatives menampilkan nilai yang salah atau bahkan gagal untuk memulai. Oleh karena itu disarankan untuk menggunakan perintah update-alternatives untuk menginstal dan mengkonfigurasi symlink yang diinginkan daripada memodifikasi symlink secara manual.

Gunakan "su" di RedHat, gunakan "sudo" di Ubuntu:

$ su -
# update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk1.7.0_06/bin/java" 1
# update-alternatives --config java

There are 3 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*+ 2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   3           /usr/java/jdk1.7.0_06/bin/java

Enter to keep the current selection[+], or type selection number: 3
# exit
$ java -version
java version "1.7.0_06"
Java(TM) SE Runtime Environment (build 1.7.0_06-b24)
Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode) 

Untuk informasi lebih lanjut, silakan lihat halaman manual update-alternatives.

$ man update-alternatives


Linux
  1. Bagaimana Menjalankan Perintah Sebagai Administrator Sistem (root)?

  2. perintah npm 'melayani' tidak ditemukan, meskipun sudah diinstal

  3. Bagaimana cara kerja perintah ps?

  1. Perbedaan Antara Perintah Bawaan Dan Yang Tidak?

  2. Apakah File Command Shuf> File Meninggalkan File Kosong, Tapi Perintah Serupa Tidak??

  3. Apakah Perintah Invers dari Cut Ada?

  1. Blokir/Cegah Perintah Jika Telah Dieksekusi Dalam X Detik/Menit Terakhir?

  2. Utilitas Dari:Perintah Dalam Scripting Shell, Mengingat Itu Secara Eksplisit Tidak Melakukan Apa-apa?

  3. Setel +a Tidak Hapus Bendera -a?