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