(Bunun SU'ya devam edip etmeyeceğinden emin değildim ... geçiş kesinlikle bir seçenektir, ancak daha fazla programcı burada soruları okur, işte burada devam eder).
Mac OS X 10.8.4 çalıştırıyorum ve Apple'ın JDK 1.6.0_51'i ve Oracle JDK 1.7.0_25'i kurdum. Yakın zamanda Oracle'ın 1.8 ön izleme JDK'sını, onu gerektiren bazı ön sürüm yazılımları için kurdum. Şimdi, / usr / libexec / java_home komutunu çalıştırdığımda şunu alıyorum:
$ /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, koşuyor:
$ java -version
İadeler:
java version "1.8.0-ea"
Bu, Java'nın varsayılan sürümünün şu anda bazı "normal" paketleri (benim durumumda, VisualVM) bozan ön sürüm olduğu anlamına gelir.
Ayarlayamıyorum JAVA_HOME
çünkü uygulamaları başlatmak komut satırından başlatılırken bile ortam değişkenlerini yok sayıyor (örn. $ open /Applications/VisualVM.app
).
Peki, genel olarak JVM sipariş tercihlerimi ayarlayabileceğim bir dosya var mı?
(Lütfen bana Java Tercihler Panelini başlatmamı söylemeyin çünkü bu işe yaramıyor: yararlı hiçbir şey içermiyor ve yalnızca yüklediğim 4 JVM'den birini listeliyor.)
Güncelleme :
Oracle JVM'ler yaşıyor /Library/Java/JavaVirtualMachines
. JDK 1.8 dizininin olarak yeniden adlandırılması jdk1.8.0.jvm.xyz
hiçbir şeyi değiştirmez: java_home
yine de doğru yerde bulur ve / usr / bin / java çalıştırmak 1.8 JVM'yi çalıştırmaya devam eder. Bu, senkronizasyon bağlantıları vb. İle ilgili bir sorun değildir.
Benzer Soruların Cevapları
İken bu cevap JAVA_HOME tarafından yakalandı olmaktan Java sürümlerini kaldırmak bir hack ne miktarda teklifler, hala bu soruya cevap vermez nasıl java_home onun varsayılan seçer ve kullanıcıların olup olmadığını olmayan yıkıcı ayarlayın .
/usr/bin/java
işaret eder /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
. Versions
Dizin 1.8.0 JDK bir sembolik bağlantı içermeyen. Bunun yerine, yararlı olarak işaret A
eden bir dizin içerir Current
. A
"JAVA_HOME değil. Commands
Bir java
komutu olan bir alt dizini var , ancak kim-bilir-neyi yapan opak evrensel bir ikili. java_home
Hangi JVM'yi kullanacağına karar vermek için vb. kullandığından şüpheleniyorum .
/usr/bin/java
sadece bir sembolik bağlantı