Wie kann ich die Standard-Java-VM von Mac OS ändern, die von / usr / libexec / java_home zurückgegeben wurde?

(Ich war mir nicht sicher, ob dies auf SU gehen sollte ... Migration ist sicherlich eine Option, aber mehr Programmierer lesen hier Fragen, also hier geht es weiter).

Ich verwende Mac OS X 10.8.4 und habe das JDK 1.6.0_51 von Apple sowie das JDK 1.7.0_25 von Oracle installiert. Ich habe kürzlich Oracle 1.8 Preview JDK für eine Pre-Release-Software installiert, für die dies erforderlich ist. Wenn ich nun / usr / libexec / java_home ausführe, erhalte ich Folgendes:

$ /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

Großartig.

Laufen jedoch:

$ java -version

Kehrt zurück:

java version "1.8.0-ea"

Das bedeutet, dass die Standardversion von Java derzeit die Vorabversion ist, die einige "normale" Pakete (in meinem Fall VisualVM) beschädigt.

Ich kann nicht einstellenJAVA_HOME da beim Starten von Anwendungen Umgebungsvariablen ignoriert werden, selbst wenn sie über die Befehlszeile gestartet werden (z.$ open /Applications/VisualVM.app).

Gibt es eine Datei, die ich bearbeiten kann und in der ich meine JVM-Bestellvorgaben festlegen kann?global?

(Bitte fordern Sie mich nicht auf, das Java Preferences Panel zu starten, da dies einfach nicht funktioniert: Es enthält nichts Nützliches und listet nur eine der 4 von mir installierten JVMs auf.)

Aktualisieren:

Oracle JVMs leben in/Library/Java/JavaVirtualMachines. Umbenennen des JDK 1.8-Verzeichnisses injdk1.8.0.jvm.xyz ändert nichts:java_home findet es immer noch an der richtigen Stelle und führt mit / usr / bin / java immer noch die JVM 1.8 aus. Dies ist kein Problem mit Synlinks usw.

Antworten auf ähnliche Fragen

Währenddiese Antwort bietet an, was einem Hack entspricht, der verhindert, dass Java-Versionen von java_home erfasst werden. Diese Frage von wird jedoch immer noch nicht beantwortetWie java_home wählt die Standardeinstellung und gibt an, ob Benutzer dies können oder nichtzerstörungsfrei einstellen.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage