Jawaban:
Saya tidak begitu yakin tetapi jika Anda menginstal RPMS normal, nilai JAVA_HOME juga dapat diatur untuk ini:
/usr/java/default/
EDIT: Saya baru saja memeriksa sistem rumah saya. Saya telah membuat file ini:
/etc/profile.d/java.sh
Itu berisi:
export JAVA_HOME=/usr/java/default/
dan saya menggunakan versi resmi dari Sun: jdk-1.6.0_12-fcs
EDIT: Inilah cara saya mengatur Java di mesin saya :
Unduh dan instal Java JDK dari Oracle
Pastikan Java ini digunakan sebagai pengganti versi OpenJDK menggunakan dua perintah berikut:
alternatives --install /usr/bin/java java /usr/java/default/bin/java 999999 \
--slave /usr/bin/keytool keytool /usr/java/default/bin/keytool \
--slave /usr/bin/rmiregistry rmiregistry /usr/java/default/bin/rmiregistry
alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 999999 \
--slave /usr/bin/jar jar /usr/java/default/bin/jar \
--slave /usr/bin/rmic rmic /usr/java/default/bin/rmic
Pastikan semua pengguna memiliki variabel lingkungan JAVA_HOME mereka yang disetel ke nilai yang benar:
echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh
/usr/java/default
dalam kotak CentOS 6 saya dengan OpenJDK 1.6 dan 1.7 diinstal.
Anda ingin menetapkan JAVA_HOME menjadi lokasi root dari JDK atau JRE, misalnya:
export JAVA_HOME=/usr/java/jdk1.3
Jika JDK (Kit Pengembangan) diinstal, ypu mungkin ingin menunjukkannya, kalau tidak gunakan jalur JRE (Java Runtime Environment). Kemudian, Anda mungkin ingin mengatur variabel lingkungan $ PATH Anda untuk memasukkan direktori bin juga:
export PATH=$PATH:/usr/java/jdk1.3/bin
Jika Anda menggunakan kucing jantan, Anda mungkin juga perlu mengatur CATALINA_HOME untuk pengguna kucing jantan.
export CATALINA_HOME=/path/to/tomcat
Untuk mengatur ini untuk sistem Anda ingin mengedit / etc / profile Anda atau menambahkan file .sh di folder /etc/profile.d. Untuk pengguna tertentu Anda dapat meletakkannya di file pengguna ~ / .profile atau ~ / .bash_profile.
Di bawah ini selalu bekerja untuk saya dengan sempurna:
[user@base ~]$ locate bin/java
/usr/bin/java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javaws
/usr/java/jdk1.6.0_31/bin/java
/usr/java/jdk1.6.0_31/bin/javac
/usr/java/jdk1.6.0_31/bin/javadoc
/usr/java/jdk1.6.0_31/bin/javah
/usr/java/jdk1.6.0_31/bin/javap
/usr/java/jdk1.6.0_31/bin/javaws
/usr/java/jdk1.6.0_31/jre/bin/java
/usr/java/jdk1.6.0_31/jre/bin/java_vm
/usr/java/jdk1.6.0_31/jre/bin/javaws
Ini berarti saya dapat mengatur JAVA_HOME sebagai /usr/java/jdk1.6.0_31
Saya menganggap masalah jika seseorang mengubah versi java yang digunakan dengan:
alternatives --config java
Kemudian kode keras mana pun JAVA_HOME
akan berubah (setidaknya itu akan ada pada Centos 6.6 yang saat ini saya tatap). Artinya, tidak ada /usr/java
.
Ini sepertinya bukan cara terbaik (terbuka untuk kegagalan) tetapi dalam 10 menit saya habiskan untuk ini tampaknya yang terbaik.
Dalam /etc/bashrc
saya mengubah pengaturan JAVA_HOME
menjadi:
export JAVA_HOME=$(alternatives --display java | grep current | sed 's/link currently points to //' | sed 's|/bin/java||')
Anda harus melakukan sesuatu yang serupa pada MacOSX tetapi tanpa semua grep
dan sed
untuk menguraikan hasilnya. Tentunya alternatives
menawarkan solusi yang juga lebih mudah.
Bagaimanapun saya harap saya membantu.
Memperbarui
Tidak akan seperti itu JRE_HOME
. JDK / SDK tidak terbukti jelas (saya akan terus mencari).
The alternatives
tampaknya hanya menjadi tentang JRE secara default. Saya menunda untuk menjawab @Niels atau hanya menginstal Java dengan yum
dan mengatur JAVA_HOME itu (triknya adalah di mana saya menemukan di mana itu diinstal!).
yum install java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm
Saya perhatikan java_1.8.0
adalah symlink ke /etc/alternatives/java_sdk_1.8.0
dan setel $ JAVA_HOME saya ke /usr/lib/jvm/java_1.8.0
. Dalam /etc/bashrc
.
Anehnya, inti dari memiliki variabel lingkungan JAVE_HOME adalah agar Anda tidak harus menentukan path ke setiap program, itu bisa mendapatkan path ini dengan mencari variabel ini.
Apa pun caranya, cara yang benar untuk menemukan variabel lingkungan untuk JAVA_HOME adalah dengan menggunakan gema:
[root@host ~]# echo $JAVA_HOME
/usr/java/j2sdk1.4.2_09
Menjalankan perintah ini akan menampilkan jalur apa pun versi yang Anda jalankan, dari baris perintah.
re: Centos7, lihat file /etc/java/java.conf.
di dalamnya JAVA_HOME ditunjukkan berada di dir berikut: / usr / lib / jvm / java
saya memeriksa, ini adalah versi yang benar dari jdk yang saya muat melalui yum, dan sebagainya ...
env saya tidak memiliki JAVA_HOME yang ditetapkan secara default, oleh karena itu saya mengaturnya di .bash_profile
Saya menemukan manajer paket dapat ditempatkan di berbagai lokasi, jadi gunakan yang mana (Anda perlu menginstal ini secara eksplisit jika menggunakan wadah) yang berikut ini sedikit kurang rapuh.
javaCompiler=$(which javac)
javaBin=$(dirname $(readlink -f $javaCompiler))
javaHome=${javaBin%/*}
export JAVA_HOME=$javaHome
atau untuk JRE
javaExec=$(which java)
javaBin=$(dirname $(readlink -f $javaExec))
javaHome=${javaBin%/*}
export JRE_HOME=$javaHome