Mevcut JAVA_HOME'umu ubuntu'da nasıl bulabilirim?


Yanıtlar:


84

Terminalde yazınız,

echo $JAVA_HOME

JAVA_HOME değişken yolunu göster.

BU ŞEYİ YAPMAK İÇİN HİÇBİR ŞEY YOK

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

Bu, JDK tipinize ve sürümünüze göre farklılık gösterecektir.

Görüntülemek için ilk komutu izleyin.

Farklı JDK'ler kullanmak için bu gönderiyi izleyin veya JDK'ler arasında geçiş yapın.


"/ Usr / lib / jvm / java-6-sun" verir. Ancak java 7'yi yükledim. "Java -version" kullanarak kontrol ettiğimde, java sürümü "1.7.0_45" Java (TM) SE Çalışma Zamanı Ortamı (sürüm 1.7.0_45-b18) Java HotSpot (TM) Server VM (yapı) verir. 24.45-b08, karma mod)
Samitha Chathuranga

2
daha sonra JAVA_HOME değişkenini ayarlamak için ikinci komutu uygulayın. NOT:JAVA_HOME doesn't make jdk default, it just makes JAVA_HOME variable set to a path & if you want to use different jdk installed on same machine then check my answer, I have edited it.
derinleştirin

Bunu / etc / environment olarak ayarlamanız gerekir
keiki

@ Jax-L Ama şimdi yankı verdiğimde JAVA_HOME sadece "JAVA_HOME" olarak görüntüleniyor. Verdiğim yol gösterilmiyor ... ???
Samitha Chathuranga

2
dışa aktarma yalnızca siz yeniden başlatana kadar çalışır. Veya .bashrc giriş komut dosyasına ihracat ekleyin. Ancak bu tür ortam değişkenlerini ayarlamanın doğru yolu / etc / environment dizinindedir
keiki

34

Eğer JDK 1.6 varsa veya yüklü daha yeni bir sürümü (Java 6 karşılık gelir), adlı bir programa sahip olmalıdır jrunscriptGözlerinde farklı PATH. İlgili bulmak için bunu kullanabilirsiniz JAVA_HOME. Örnek:

$ jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'
/opt/local/jdk1.7.0_76/jre

Ortam değişkenini şöyle ayarlayabilirsiniz:

$ export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"

JRE'nin içermediğine dikkat edin jrunscript, bu nedenle yalnızca JRE'yi değil JDK'yi yüklerseniz bu işe yarar.


Bir dizine daha derine girmem gerektiğine karar vermem gereken çok şey vardı, ama teşekkürler.
cnizzardini

15

Bir başka taşınabilir seçenek de JDK'nın mutlak yolunu şunlardan çıkarmaktır javac:

export JAVA_HOME=`type -p javac|xargs readlink -f|xargs dirname|xargs dirname`

Mutlak javacyol, uçtan dirnamekaldırmak için iki kez geçirilir /bin/javac. Dizinin tamamen çıkartılması şöyledir:

$ type -p javac
/usr/bin/javac

$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-oracle/bin/javac

$ dirname /usr/lib/jvm/java-8-oracle/bin/javac
/usr/lib/jvm/java-8-oracle/bin/

$ dirname /usr/lib/jvm/java-8-oracle/bin/
/usr/lib/jvm/java-8-oracle/

1
Birini type -p javac|xargs readlink -f|xargs dirname|xargs dirname(dışa aktarma kısmı olmadan) dizini ayarlamadan tanımak için kullanabilirsiniz.
Mina Michael,

Tam olarak aradığım şey! Mükemmel cevap!
Silviu Burcea

7

Güncelleme alternatifleri mekanizmasını dikkate almak için:

$ update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre'

Ortam değişkenini şöyle ayarlayabilirsiniz:

$ export JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre')"

Bu, JAVA_HOME’a vermeyeceği için hala izini sürmeyecek /jre. Deneyebilirsinexport JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | sed -e 's/Value: //;s?/jre/bin/java??;')"
James Brusey

7

Sadece bir komut çalıştır

 sudo update-alternatives --config java

Gibi bir şey verecek

Es gibt nur eine Alternative in Link-Gruppe java (die /usr/bin/java bereitstellt): /usr/lib/jvm/java-8-oracle/jre/bin/java

Bundan / usr / lib / jvm / java-8-oracle / java evi olarak var. Şimdi onu JAVA_HOME değişkenine verebilirsiniz

export JAVA_HOME=/usr/lib/jvm/java-8-oracle/

Şimdi $ JAVA_HOME göster


1

Bunu Ubuntu LTS'de (14.04 / 16.04) kullanıyorum:

[ -L /etc/alternatives/java ] && 
  export JAVA_HOME="$(readlink -f /etc/alternatives/java | sed -e 's/\/jre\/bin\/java$//')"


0

Java 9 ve üstü için:

Bu cevap https://askubuntu.com/a/657468/963 , java.homesistem özelliğini yazdırmak için ekteki Nashorn JavaScript motorunu Nashorn kullanır . Nashorn kullanımdan kaldırılıyor, bu nedenle jshellJava 9'da tanıtılan bir alternatif kullanılacak .

echo 'System.out.println(java.lang.System.getProperty("java.home"));' | jshell  -

benim Ubuntu 18.10 sistemimde hangi çıktılar:

/usr/lib/jvm/java-11-openjdk-amd64
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.