it-swarm-id.com

Berapa nilai Java_HOME untuk CentOS?

Saya telah menginstal Java melalui yum pada CentOS, namun program lain Java perlu tahu apa variabel lingkungan Java_HOME. Saya tahu semua tentang pengaturan variabel lingkungan, tetapi untuk apa saya mengaturnya? Java dipasang di /usr/bin/Java, itu tidak mungkin ada di sana!

37
Rory

Sebenarnya saya menemukannya,

itu /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/. Saya menemukan apa itu dengan melakukan update-alternatives --display Java dan itu menunjukkan kepada saya direktori /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/Java

54
Rory

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 bagaimana saya mengatur Java pada mesin saya :

Instal Java

Unduh dan instal Java JDK dari Oracle

Jadikan sebagai yang utama

Pastikan ini Java digunakan sebagai ganti versi OpenJDK menggunakan dua perintah berikut:

Pertama

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

Kedua

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

Setel Java_HOME

Pastikan semua pengguna memiliki variabel lingkungan Java_HOME mereka disetel ke nilai yang benar:

echo "export Java_HOME=/usr/Java/default/" > /etc/profile.d/Java_home.sh
20
Niels Basjes

Di bawah ini selalu bekerja untuk saya dengan sempurna:

[[email protected] ~]$ 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

2
prashant

Anda ingin mengatur Java_HOME menjadi lokasi root 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 Tomcat, Anda mungkin juga perlu mengatur CATALINA_HOME untuk pengguna Tomcat.

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.

2
Kyle Brandt

Saya menganggap masalah jika seseorang mengubah versi Java digunakan dengan:

alternatives --config Java

Kemudian ada kode keras Java_HOME akan berubah (minimal akan di Centos 6.6 saya sedang menatap). Artinya, tidak ada /usr/Java.

Ini sepertinya bukan cara terbaik (terbuka untuk kegagalan) tetapi dalam 10 menit saya telah menghabiskan ini tampaknya yang terbaik.

Di /etc/bashrc Saya mengubah pengaturan ke 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 mem-parsing hasilnya. Tentunya alternatives menawarkan solusi yang lebih mudah.

Bagaimanapun saya harap saya membantu.


Pembaruan

Tidak, itu akan menjadi JRE_HOME. JDK/SDK tidak terbukti jelas (saya akan terus mencari).

alternatives tampaknya hanya tentang JRE secara default. Saya menunda untuk menjawab @Niels atau hanya menginstal Java dengan yum dan mengatur Java_HOME untuk itu (triknya adalah di mana saya menemukan tempat yang diinstal ke!).

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.

1
HankCa

re: Centos7, lihat file /etc/Java/java.conf.

di dalamnya Java_HOME diindikasikan 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

0
theRiley

Saya menemukan manajer paket dapat ditempatkan di berbagai lokasi, jadi gunakan yang (Anda harus menginstal ini secara eksplisit jika menggunakan wadah) berikut ini adalah 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
0
Jules Clements

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:

[[email protected] ~]# echo $Java_HOME
/usr/Java/j2sdk1.4.2_09

Menjalankan perintah ini akan menampilkan jalur apa pun versi yang Anda jalankan, dari baris perintah.

0
Dave Drager