JAVA_HOME ve güncelleme alternatifleri arasındaki fark nedir?


13

Fedora kutum için OpenJDK Java Runtime'ı varsayılan Java olarak çalıştırmanın ve Android geliştirme için Oracle JDK 6'yı Android SDK Yöneticisi, Android Studio ve Eclipse'yi Android Paketi'nden çalıştırmak için kullanmanın en iyi yolunu bulmaya çalışıyorum.

Aşağıdaki kurulum alternatiflerine sahip Fedora deposundan OpenJDK Java Runtime'ı yükledim.

[donnie@fedora ~]$ alternatives --list | grep java
jre_openjdk             auto    /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre
jre_1.7.0               auto    /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre
java                    auto    /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre/bin/java
libjavaplugin.so.x86_64 auto    /usr/lib64/IcedTeaPlugin.so

Oracle tarafından sağlanan rpm'i kullanarak Oracle JDK 6'yı yükledim.

Android Bundle ve Studio'nun, takip ederek yapıştırarak Oracle JDK altında çalıştırmak için JAVA_HOME'u kullanmasını sağlayabilirim .bashrc.

export JAVA_HOME=/usr/java/jdk1.6.0_45/
export PATH=$JAVA_HOME/bin:$PATH

Chrome'un hala OpenJDK kullandığını fark ettim (hala eklentiyi bağlamam gerekiyor).

JAVA_HOME ile alternatifleri kullanma arasındaki fark nedir?

Yanıtlar:


12

Alternatifler

Alternatifler, aracın kontrolü altındaki bağlantıları kullanarak kurulu yazılımın konumlarını yönetecek bir alternativesaraçtır.

Bu bağlantılar sonuçta tipik olarak /etc/alternativesbir dizin altında oluşturulan ara bağlantılar ile yönetilir .$PATH/usr/bin

Misal

$ ls -l /usr/bin/java
lrwxrwxrwx. 1 root root 22 Feb 24 17:36 /usr/bin/java -> /etc/alternatives/java

$ ls -l /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 Feb 24 17:36 /etc/alternatives/java -> /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.0.fc19.x86_64/jre/bin/java

$ JAVA_HOME

$JAVA_HOMEyazılımın bir ortam değişkeninin kullanımını incelemesi söylenebilir. Eklemeden $PATHsadece yürütülebilir içinde mevcut ekler $JAVA_HOME/binadresinden Müşteri $PATH. Bu bazen belirli uygulamalar için gereklidir.

İki mekanizma ilişkilidir, ancak birlikte veya birbirinden bağımsız olarak kullanılabilir, gerçekten hangi mekanizmanın tercih edileceği Java uygulamasına bağlıdır.

Ne yaptığım

Genellikle $JAVA_HOMEbazı GUI uygulamaları için kullanıyorum , ancak genel olarak yalnızca Jetty, Tomcat veya JBOSS kullanan sunucu kurulumları için kullanıyorum.

Bu kurulumlar alternativesiçin, Java kurulumlarını ayarlamadan önce kullanmaya devam edeceğim $JAVA_HOME. Java'nın birden fazla kurulumuna ihtiyaç duyabileceğim durumlarda bu şekilde yapmayı seviyorum.

Alternatifler, bazı araçların tek bir Java yüklemesi kullanmasını sağlarken, diğer araçlar tamamen farklı bir araç kullanır.

Referanslar


Hediye, alternatifler ile Java'nın farklı bileşenlerini kullanabilmemdir. Örneğin, Alternatifleri ayarlayabilir javave javacdiğer yandan farklı JDKs gelen JAVA_HOME=JAVALOCATIONişaret eder java, javacve javawsüzere java, javacve javawsde JAVALOCATIONsırasıyla.
Sudhir Khanger

Bu soruyu sormamın nedeni , OpenJDK'yı varsayılan Java Runtime olarak nasıl kullanabileceğim ve Android Studio, Eclipse ve SDK Manager'ın Oracle JDK kullanmasını nasıl sağlayabildiğimdi. Bu üç programı, güncellenmiş olmaları durumunda bozulabilecek başlangıç ​​komut dosyalarını düzenleyerek Oracle JDK altında çalıştırabilirim. STUDIO_JDKEkleyebileceğim ~/.profileveya ~/.bashrcAndroid Studio tarafından JDK'yı almak için kullanılan daha genel bir şey arıyordum , ancak Android Bundle (Eclipse ve SDK Yöneticisi) bunu onurlandırmayacağını düşünüyorum.
Sudhir Khanger

@donniezazen - evet STUDIO_JDKözel bir şey. Ben bu araçlar için alternatifler kullanır ve JAVA_HOMEaltında /usr/binyönetildiği yola ayarlanır alternatives. Yükseltmeler gerçekleştirildiğinde, alternativestek gereken değişikliktir.
slm

Ne önerdiğinden emin değilim. Nokta hem alternativesve JAVA_HOMEsöylemek /usr/bin/java. Ayrıca JAVA_HOMEgeçersiz kılma gibi görünüyor alternatives.
Sudhir Khanger

@donniezazen - evet JAVA kurulumlarınızı yönetmek için alternatifler kullanın ve ardından JAVA_HOMEişaret ederek kullanın /usr/bin. Sen, doğru konum JAVA_HOMEbağımsız çalışabilir alternatives.
slm
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.