Ben Java CentOS üzerinde yum üzerinden var, ancak başka bir Java program Java_HOME çevresel değişkenin ne olduğunu bilmek gerekir. Çevresel değişkenleri ayarlama hakkında her şeyi biliyorum, ama ne olarak ayarlayabilirim? Java
/usr/bin/Java
, orada olamaz!
Aslında buldum,
bu /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/
. Ne yaparak _ olduğunu öğrendim update-alternatives --display Java
ve bana /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/Java
Emin değilim ama normal RPMS yüklerseniz Java_HOME değeri de buna ayarlanabilir:
/usr/Java/default/
EDIT: Ev sistemimi yeni kontrol ettim. Bu dosyayı oluşturdum:
/etc/profile.d/Java.sh
Şunları içerir:
export Java_HOME=/usr/Java/default/
ve Sun'ın resmi sürümünü kullanıyorum: jdk-1.6.0_12-fcs
DÜZENLEME: İşte nasıl ayarladığım Java :
Java JDK'yı indirin ve yükleyin
Aşağıdaki iki komutu kullanarak bu Java kullanıldığından emin olun:
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
Tüm kullanıcıların Java_HOME ortam değişkeninin doğru değere ayarlandığından emin olun:
echo "export Java_HOME=/usr/Java/default/" > /etc/profile.d/Java_home.sh
Aşağıda her zaman benim için mükemmel çalışıyor:
[[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
Java_HOME'u /usr/Java/jdk1.6.0_31 olarak ayarlayabileceğim anlamına gelir
Java_HOME'u JDK veya JRE'nin kök konumu olarak ayarlamak istiyorsunuz, örneğin:
export Java_HOME=/usr/Java/jdk1.3
JDK (Geliştirme kiti) yüklüyse, ypu muhtemelen bunu göstermesini ister, aksi takdirde JRE yolunu (Java Runtime Environment) kullanın. Ardından, $ PATH ortam değişkeninizi bin dizinini de içerecek şekilde ayarlamak isteyebilirsiniz:
export PATH=$PATH:/usr/Java/jdk1.3/bin
Tomcat kullanıyorsanız, Tomcat kullanıcısı için CATALINA_HOME ayarlamanız da gerekebilir.
export CATALINA_HOME=/path/to/Tomcat
Bunu,/etc/profilinizi düzenlemek veya /etc/profile.d klasörüne bir .sh dosyası eklemek istediğiniz sistem için ayarlamak için. Belirli bir kullanıcı için kullanıcı ~/.profile veya ~/.bash_profile dosyalarına koyabilirsiniz.
Bir Java ile birlikte kullanılan sürümünü değiştirirseniz sorunu düşündüm:
alternatives --config Java
Sonra sabit kodlanmış Java_HOME
değişecek (en azından şu anda Centos 6.6'da bakacağım). Yani, /usr/Java
.
Bu en iyi yolu gibi görünmüyor (hataya açık) ama bu konuda harcadığım 10 dakika içinde en iyi görünüyor.
İçinde /etc/bashrc
Ayarı Java_HOME
olmak:
export Java_HOME=$(alternatives --display Java | grep current | sed 's/link currently points to //' | sed 's|/bin/Java||')
MacOSX'ta benzer bir şey yapmalısınız, ancak sonucu ayrıştırmak için grep
ve sed
olmadan. Elbette alternatives
benzer şekilde daha kolay bir çözüm sunar.
Neyse umarım yardımcı oldum.
Güncellemesi
Hayır bu JRE_HOME
. JDK/SDK çok açık değil (bakmaya devam edeceğim).
alternatives
varsayılan olarak yalnızca JRE ile ilgilidir. @Niels cevap ertelemek veya sadece Java _ yum
ile Java) yüklemek ve Java_HOME bunu (hile yüklü olduğu yerde bulundu!) Ayarlayın.
yum install Java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm
Farkettim Java_1.8.0
, /etc/alternatives/Java_sdk_1.8.0
ve böylece $ Java_HOME'umu /usr/lib/jvm/Java_1.8.0
. İçinde /etc/bashrc
.
re: Centos7, /etc/Java/java.conf dosyasına bakın.
i̇çinde Java_HOME'un aşağıdaki dizinde bulunduğu belirtilir:/usr/lib/jvm/Java
i kontrol, ben yum ile yüklenen jdk doğru sürümüdür ve böylece ...
benim env varsayılan olarak Java_HOME ayarlanmamış, bu nedenle .bash_profile
Paket yöneticisinin çeşitli konumlara yerleştirebileceğini buldum, bu yüzden hangi kullanarak (bir kapsayıcı kullanıyorsanız bunu açıkça yüklemeniz gerekecek) aşağıdaki biraz daha az kırılgan
javaCompiler=$(which javac)
javaBin=$(dirname $(readlink -f $javaCompiler))
javaHome=${javaBin%/*}
export Java_HOME=$javaHome
veya JRE için
javaExec=$(which Java)
javaBin=$(dirname $(readlink -f $javaExec))
javaHome=${javaBin%/*}
export JRE_HOME=$javaHome
Bu tuhaf, bir JAVE_HOME çevresel değişkenine sahip olmanın tüm amacı, her programın yolunu belirtmeniz gerekmiyor, bu değişkeni arayarak bu yolu alabilir.
Her iki durumda da, Java_HOME için çevresel değişkeni bulmanın doğru yolu echo kullanmaktır:
[[email protected] ~]# echo $Java_HOME
/usr/Java/j2sdk1.4.2_09
Bu komutu çalıştırmak, hangi sürümü kullanıyor olursanız olun yolu komut satırından görüntüler.