(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.xyzhiçbir şeyi değiştirmez: java_homeyine 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/javaişaret eder /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java. VersionsDizin 1.8.0 JDK bir sembolik bağlantı içermeyen. Bunun yerine, yararlı olarak işaret Aeden bir dizin içerir Current. A"JAVA_HOME değil. CommandsBir javakomutu olan bir alt dizini var , ancak kim-bilir-neyi yapan opak evrensel bir ikili. java_homeHangi JVM'yi kullanacağına karar vermek için vb. kullandığından şüpheleniyorum .
/usr/bin/javasadece bir sembolik bağlantı