SORU
26 Temmuz 2013, Cuma


Nasıl Mac OS değiştir'varsayılan s iade /usr/libexec/Java VM java_home miyim

(Bu SU üzerine gitmeli... geçiş kesinlikle bir seçenek değil, ama daha çok programcı yüzden burada soruları oku, emin olamadım).

Mac OS X 10.8.4 ve Apple'ın hangi FIRSATLAR var 1.6.0_51 yüklü olarak Oracle ile İLGİLENİYORUZ 1.7.0_25 çalıştırıyorum. Geçenlerde Oracle 1.8 önizleme gerektiren yayın öncesi Bazı yazılımlar için yazılım ve programları yüklü. Koşarken şimdi,/java_home bu çıkıyor: /usr/libexec

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    1.8.0, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
    1.7.0_25, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
    1.6.0_51-b11-457, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_51-b11-457, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Harika.

Ancak, çalışan:

$ java -version

Verir:

java version "1.8.0-ea"

Java varsayılan sürümü bazı paketleri (benim durumumda, VisualVM). normal tatili şu anda yayın öncesi sürüm olduğu anlamına gelir

Komut satırından (örneğin $ open /Applications/VisualVM.app) başlatılması bile uygulamaların başlatılması çevre değişkenlerini yoksayar çünkü JAVA_HOME set, yapamam.

Benim JVM tercihler sipariş ayarlayabiliyorum nerede düzenleyebilirsiniz bir dosya vargenel olarak?

(Lütfen sadece çalışmaz, çünkü bana Java Tercihleri Panelini başlatmak için söyleme: bir şey yararlı ve sadece listeler 4 yüklü bu Jvm'ler.) içermiyor

Güncelleme:

Oracle Jvm'ler /Library/Java/JavaVirtualMachines yaşar. Yeniden adlandırma ile İLGİLENİYORUZ 1.8 dizine jdk1.8.0.jvm.xyz değişmez bir şey: java_home yine de bulur bunu doğru yerde ve çalışan /usr/bin/java hala yürütür 1.8 JVM. Bu synlinks, vb ile ilgili bir sorun değildir.

CEVAP
26 Temmuz 2013, Cuma


JAVA_HOME yapabileceğiniz en iyi şey olduğunu düşünüyorum. Komut satırı araçları gibi java javac iradesine uygun ortam değişkeni kullanabilirsiniz /usr/libexec/java_home -v '1.7*' vermek için uygun bir değer koy içine JAVA_HOME yapmak için komut satırı araçlarını kullanın Java 7.

export JAVA_HOME="`/usr/libexec/java_home -v '1.7*'`"

Ama standart uygulama paketleri JDKs /Library/Java altında yüklü hiç kullanmayın çift tıklanabilir. Eski tarz .app demetleri kullanarak Apple'ın JavaApplicationStub kullanacak Apple Java 6 /System/Library/Frameworks ve yeni tarzı olanlar dahili AppBundler olmadan bir paket TOTEM kullanır "halk" TOTEM /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home - kodlanmış, saplama kod ve olamaz değiştirdi ve iki farklı kamu JREs yüklü aynı zamanda.


Edit: verdim bak VisualVM özellikle varsayıyorsun kullanarak "uygulama paketi" sürümü the download page, ve bu belirli bir uygulama değildir AppBundler bir uygulama, bunun yerine kendi ana yürütülebilir bir kabuk betiği çağıran bir dizi diğer kabuk betikleri ve okur çeşitli yapılandırma dosyaları. Eğer Java 7 yükleme güncelleme 9 veya önceki /Library/Java en yeni FIRSATLAR bu 7u10 ya da geç, ya da Java 6 kullandığı sürece toplama için varsayılan kullanılır. Ama bana öyle geliyor ki kabuk betikleri mantığı çözülüyor belirli bir GÖRDÜM bir yapılandırma dosyası kullanarak belirtebilirsiniz.

Bir metin dosyası ~/Library/Application Support/VisualVM/1.3.6/etc/visualvm.conf (kullandığınız her türlü ile 1.3.6 değiştir) içeren satırı oluşturun

visualvm_jdkhome="`/usr/libexec/java_home -v '1.7*'`"

ve bu 8 yerine Java 7 seçmek için zorlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • JTechTalk

    JTechTalk

    11 Temmuz 2010
  • midomansour

    midomansour

    19 EYLÜL 2009