CentOS için JAVA_HOME'un değeri nedir?


37

Java'yı CentOS'a yum aracılığıyla yükledim, ancak başka bir java programının JAVA_HOME ortam değişkeninin ne olduğunu bilmesi gerekiyor. Çevresel değişkenleri ayarlamakla ilgili her şeyi biliyorum, ancak neye ayarlarım? javayüklü /usr/bin/java, orada olamaz!

Yanıtlar:


54

Aslında ben buldum

bu /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/. Ne yaptığını öğrendim update-alternatives --display javave bana dizini gösterdi/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java


20

Emin değilim ama normal RPMS'yi kurarsanız JAVA_HOME değeri de şu şekilde ayarlanabilir:

/usr/java/default/

EDIT: Sadece ev sistemimi kontrol ettim. Bu dosyayı yarattım:

/etc/profile.d/java.sh

Bu 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 benim makinede Java kurmak nasıl :

Java'yı yükleyin

Java'dan JDK'yı indirin ve yükleyin

Birincil yap

Aşağıdaki iki komutu kullanarak bu Java'nın OpenJDK sürümü yerine kullanıldığından emin olun:

İlk

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

İkinci

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

JAVA_HOME Ayarla

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

Oh ilginç. :)
Rory

1
/usr/java/defaultOpenJDK 1.6 ve 1.7 yüklü CentOS 6 kutumda yok .
Daniel Serodio

@DanielSerodio Doğru. "Java JDK'yı Oracle'dan indirip yükleyin" açık bir şekilde anlatılmıştı ve sonra var.
Niels Basjes

2

JAVA_HOME’yu JDK veya JRE’nin kök konumu olarak ayarlamak istiyorsunuz, örneğin:

export JAVA_HOME=/usr/java/jdk1.3

JDK (Geliştirme seti) kuruluysa, ypu muhtemelen işaret etmesini 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 ayarlaması gerekebilir.

export CATALINA_HOME=/path/to/tomcat

Bunu sisteme ayarlamak için / etc / profilinizi düzenlemek veya /etc/profile.d klasörüne bir .sh dosyası ekleyin. Belirli bir kullanıcı için bunu ~ / .profile veya ~ / .bash_profile dosyalarına koyabilirsiniz.


Süper kullanıcı olarak çalıştırmak, hep o rahatsız edici bulursanız sizin için bu yapmaz yüklemek iyi bir nedeni var ... acaba
Kyle Brandt

2

Aşağıda her zaman benim için mükemmel çalışıyor:

[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

JAVA_HOME ayarını /usr/java/jdk1.6.0_31 olarak ayarlayabildiğim anlamına geliyor.


1

Kullanılmakta olan java sürümünü değiştirip değiştirmeme sorununu düşündüm:

alternatives --config java

Sonra herhangi bir kodlanmış kod JAVA_HOMEdeğişecek (en azından şu an bakmakta olduğum Centos 6.6'da olacak). Yani, hayır yok /usr/java.

Bu en iyi yol gibi gözükmüyor (başarısızlığa açık), ancak harcadığım 10 dakika içinde en iyisi gibi görünüyor.

In /etc/bashrcben ayarını değiştirdiniz için JAVA_HOMEolmak:

export JAVA_HOME=$(alternatives --display java | grep current | sed 's/link currently points to //' | sed 's|/bin/java||')

Sen MacOSX üzerinde benzer bir şey yapmak zorunda ama hepsi olmadan grepve sedsonucunu ayrıştırmak. Kesinlikle alternativesbenzer şekilde daha kolay bir çözüm sunar.

Neyse umarım yardım etmişimdir.


Güncelleme

Hayır, olmazdı JRE_HOME. JDK / SDK açıkça belli değil (bakmaya devam edeceğim).

alternativesVarsayılan olarak yalnızca JRE hakkında olduğu görülüyor. @Niels'in cevabını ertelediyorum ya da sadece Java'yı kurup yumJAVA_HOME ayarını yaptım (işin püf noktası nerede kurulduğunu bulduğum yer!).

yum install java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm 

Fark ettim java_1.8.0, bir bağlantı oldu /etc/alternatives/java_sdk_1.8.0ve bu yüzden $ JAVA_HOME olarak ayarlayın /usr/lib/jvm/java_1.8.0. İçinde /etc/bashrc.


0

Bu garip, bir JAVE_HOME çevresel değişkenine sahip olmanın asıl amacı, her programın yolunu belirtmeniz gerekmediği için, bu değişkeni arayarak bu yolu bulabilir.

Her iki durumda da, JAVA_HOME için çevresel değişkeni bulmanın doğru yolu yankı kullanmaktır:

[root@host ~]# echo $JAVA_HOME
/usr/java/j2sdk1.4.2_09

Bu komutu çalıştırmak, hangi sürümde çalışıyor olursanız olun komut satırından gidecektir.


2
Değişken ayarlanmadı.
Rory

0

re: Centos7, /etc/java/java.conf dosyasına bakın.

İçinde JAVA_HOME, aşağıdaki direkte bulunduğu belirtilir: / usr / lib / jvm / java

kontrol ettim, yum üzerinden yüklenen jdk'in doğru sürümü.

env'im varsayılan olarak JAVA_HOME ayarına sahip değil, bu yüzden .bash_profile dosyasına ayarladım


0

Öyle kullanarak, paket yöneticisi konumlardan çeşitli yerleştirebilirsiniz bulunan hangi şu biraz daha az kırılgandır (bir kapsayıcı kullanıyorsanız açıkça bu yüklemeniz gerekir)

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.