Debian / Ubuntu'da JAVA_HOME nasıl belirlenir?


95

Ubuntu'da aynı anda birden fazla JVM olması mümkündür. Varsayılan olan ile seçilir update-alternatives. Ancak bu, debian politikasıJAVA_HOME nedeniyle çevre değişkenini belirlemez .

Bir java uygulamasını başlatan bir başlatıcı betiği (bash) yazıyorum. Bu java uygulamasının JAVA_HOMEortam değişkenine ihtiyacı var . Peki şu anda tarafından seçilen JVM'nin yolunu nasıl elde edersiniz update-alternatives?

Yanıtlar:


137

JRE için, böyle bir şey hile yapmak gerekir:

JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

17
JRE yerine JDK'nın evine ihtiyacım vardı, ama şunu kullandım: JAVA_HOME = $ (readlink -f / usr / bin / javac | sed "s: bin / javac ::") Teşekkürler!
Witek

emri denediğimde, echo $(readlink -f /usr/bin/java | sed "s:bin/java::")çıktısı çıktı /usr/lib/jvm/java-7-oracle/jre/ve değildi/usr/lib/jvm/java-7-oracle/
Sumit Ramteke

Rsaddey'de verilen kod doğru çalışıyor
Sumit Ramteke

43

danadam'ın çözümü, JDK (yani JRE değil) yolunu gerektiği gibi almak için kolayca kullanılabilir:

JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
  • JDK'da bulunan (ancak JRE değil) javac Java derleyicisini (java yerine) arar.
  • İzleri yok / (s: bin ... yerine sed s: / bin ... tarafından çıkarıldı)

12

export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))

In .bashrcbenim için kullanışlı oldu.


9

Yani bu komutun senin için hiçbir şey yapmadığını mı söylüyorsun?

sudo update-alternatives --config java 

2
JAVA_HOME'nuzu ayarlamanız gerekiyor mu? Güncelleme alternatifleri, Java ile ilgili tüm alternatifleri güncellemediğinden, güncelleme-java alternatiflerinin Java'yı güncellemenin daha iyi bir yolu olduğunu buldum. Bkz askubuntu.com/questions/141791
James McMahon

Doğru, ancak güncelleme alternatifleri olan ancak güncelleme-java alternatifleri kurulu olmayan Linux örnekleri ile karşılaştım.
djangofan

3

Java'yı kurdum

sudo apt-get install openjdk-7-jre-headless

ve sonra konumu bulmak için

ls -al /etc/alternatives/java

2

Bir danadams cevap uzantısı olarak:

Her şeyden önce, 2. Java JRE'yi 3. Java seçeneği olarak "3" önceliği ile yükleyin:

sudo alternatives --install /usr/lib/jvm/jre jre /opt/IBM/java/jre/bin/java 3

Sonra bunları listeleyebilirsiniz:

update-alternatives --list java

Aşağıdakileri kullanarak alternatifi elle ayarlayabilirsiniz:

sudo alternatives --config java /opt/IBM/java/jre/bin/java

Ardından, komut dosyanız bunu anında uygulayabilir:

sudo alternatives --set java /opt/IBM/java/jre/bin/java
JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

Bu, 'sed' komutunun ne yaptığını gösterir. Yine de her biri ayrı ayrı yapılan javaw ve javac, vb. İçin bağlantıları ayarlamanız gerekmesine rağmen.


1

Bir süre önce Ubuntu forumunda Java web sitesinden en son JRE / JDK'nın nasıl kurulacağı hakkında bir eğitim hazırladım. Ayrıca, PATH değişkenine JRE / JDK konumunu ekleyerek, sistem genelinde nasıl etkinleştirileceğini de kapsar. İsterseniz konunun sonunda belirtilen komut dosyasına JAVA_HOME öğesini de ekleyebilirsiniz.

Çıkış: http://ubuntuforums.org/showthread.php?t=1437100


1

Java, update-alternativesPATH değişkeninize manuel olarak yapılandırılmış veya eklenmişse, herhangi bir sabit kodlamaya "/usr/bin/java"gerek yoktur . Bu çözümü .bashrc dosyamda kullanıyorum:

export JAVA_HOME=$(readlink -m $(which java)/../..)

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.