readlink
perintah akan menunjukkan kepada Anda path lengkap dari tautan simbolik:
readlink -f `which java`
Hal terbaik yang dapat Anda lakukan adalah menghindari java Red Hat sama sekali.
Dapatkan java Anda dari Oracle dan letakkan di /opt.Kemudian buat saja symlink /opt/Java -> /opt/jdk-someversion, dan buat /etc/profile.d/Java.sh berisi
#!/bin/sh
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH
Kemudian, untuk mengubah java di seluruh sistem, cukup ubah symlink di opt.Untuk menggunakan beberapa versi java, gunakan skrip seperti di atas dengan JAVA_HOME yang sesuai.
Selanjutnya, skrip /sbin/service yang digunakan untuk menjalankan skrip /etc/init.d akan merobek variabel lingkungan - mengeksekusi env -i secara eksplisit. Jadi kucing jantan Anda tidak akan mendapatkan JAVA_HOME, Anda harus membuat setenv.sh di $CATALINA_BASE/bin.
Kelemahan dari pendekatan ini adalah Anda tidak mendapatkan pembaruan java dari Red Hat.
Pertama, coba echo $JAVA_HOME
dari baris perintah. Sejak java
sudah ada di jalur Anda, JAVA_HOME
dapat diatur.
Apa cara terbaik untuk mengetahui direktori instalasi instalasi java saya
Menjalankan perintah which java
akan mengarahkan Anda ke tempat java
telah diinstal.
lalu setel JAVA_HOME
Anda dapat mengedit ~/.bashrc
, ~/.bash_profile
, atau /etc/profile
untuk mengatur JAVA_HOME
. Setting di ~/etc/profile
akan menyetelnya ke seluruh sistem, dan ini mungkin bukan yang Anda inginkan. Katakanlah sebagai contoh output dari which java
adalah /opt/jdk_1.7.0_25
, maka Anda tinggal menambahkan export JAVA_HOME=/opt/jdk_1.7.0_25
ke ~/.bashrc
atau ~/.bash_profile
lalu jalankan source ~/.bashrc
(atau source ~/.bash_profile
jika Anda mengaturnya di sana).
Perhatikan bahwa dalam hal ini, java
ada di PATH
tetapi dalam beberapa kasus Anda perlu menambahkan export PATH=$PATH:$JAVA_HOME/bin
untuk menambahkan JAVA_HOME
variabel ke PATH
.
RHEL menggunakan subsistem alternatif untuk mengelola instalasi java. Anda dapat memasang beberapa versi java, tetapi hanya satu yang aktif dalam satu waktu.
Ini berarti menjalankan which java
tidak memberikan informasi yang berguna. Outputnya akan sama tidak peduli instalasi java mana yang dipilih melalui alternatif. Menjalankan readlink -f $(which java)
(seperti yang sudah disarankan di komentar lain) atau menggunakan alternatif pertanyaan alternatives --display java
akan lebih baik.
Lihat contoh dari mesin RHEL 6 dengan OpenJDK terpasang (yang dikirimkan bersama RHEL):
[[email protected] ~]# which java
/usr/bin/java
[[email protected] ~]# readlink -f $(which java)
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64/jre/bin/java
[[email protected] ~]# alternatives --display java | head -2
java - status is manual.
link currently points to /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
Perhatikan bahwa variabel lingkungan JAVA_HOME
tidak ditentukan di mana pun secara default, Anda harus mendefinisikannya sendiri di .bashrc
pengguna yang membutuhkannya.
Pada contoh sebelumnya, nilai yang benar dari JAVA_HOME
akan menjadi /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
.
Lihat detailnya di Instal dokumentasi OpenJDK, cari bagian "Opsional:Tetapkan variabel lingkungan JAVA_HOME".