(Ich war mir nicht sicher, ob dies auf SU gehen sollte ... Migration ist sicherlich eine Option, aber mehr Programmierer lesen hier Fragen, also 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 das 1.8-Vorschau-JDK von Oracle für eine Pre-Release-Software installiert, für die dies erforderlich ist. Wenn ich jetzt / 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
Toll.
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) zerstört.
Ich kann nicht festlegen, JAVA_HOMEda beim Starten von Anwendungen Umgebungsvariablen ignoriert werden, selbst wenn sie über die Befehlszeile gestartet werden (z $ open /Applications/VisualVM.app. B. ).
Gibt es eine Datei, die ich bearbeiten kann und in der ich meine JVM-Bestelleinstellungen global festlegen kann ?
(Bitte fordern Sie mich nicht auf, das Java-Einstellungsfenster zu starten, da dies einfach nicht funktioniert: Es enthält nichts Nützliches und listet nur eine der 4 JVMs auf, die ich installiert habe.)
Update :
Oracle JVMs leben in /Library/Java/JavaVirtualMachines. Das Umbenennen des JDK 1.8-Verzeichnisses in jdk1.8.0.jvm.xyzändert nichts: Es befindet sich java_homeimmer noch an der richtigen Stelle, und wenn Sie / usr / bin / java ausführen, wird die 1.8-JVM weiterhin ausgeführt. Dies ist kein Problem mit Synlinks usw.
Antworten auf ähnliche Fragen
Während diese Antwort bietet , was zu einem Hack beträgt die Java - Versionen von abgeholt von java_home zu entfernen, es antwortet immer noch nicht diese Frage, wie java_home seinen Standard wählt und ob Benutzer können nicht-destruktiv es eingestellt .
/usr/bin/javazeigt auf /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java. Das VersionsVerzeichnis enthält keinen Symlink zum 1.8.0 JDK. Stattdessen enthält es ein Verzeichnis, das hilfreich aufgerufen wird und auf Adas Currentverweist. Aist kein "JAVA_HOME". Es hat ein Unterverzeichnis namens, Commandsdas einen javaBefehl hat, aber es ist eine undurchsichtige universelle Binärdatei, die wer weiß was tut. Ich vermute, sie verwendet java_homeusw., um zu entscheiden, welche JVM verwendet werden soll.
/usr/bin/javaist nur ein Symlink