Wie starte ich Apps, die Java auf Mountain Lion benötigen, wenn nur Java 7 installiert ist?

Ich habe gerade ein brandneues MacBook Air erhalten, das mit Mountain Lion 10.8.4 und ohne installiertem Java ausgeliefert wurde. Es gibt eine /usr/bin/java, aber wenn ich sie ausführe, würde ich dazu aufgefordert, eine von Apple vertriebene Java 6-Laufzeit in einem Cocoa-Dialogfeld zu installieren.

Oracle unterstützt Java 6 jedoch nicht mehr, und ich möchte keine nicht unterstützte und wahrscheinlich unsichere Java-Installation ausführen.

Also ging ich zu den Java SE-Downloads von Oracle und installierte das neueste JDK, jdk-7u25-macosx-x64. Jetzt ist das einzige Java, das ich auf dieser Maschine habe, 1.7.0_25, vertrieben von Oracle. /usr/bin/java -versionjetzt funktioniert.

Ich habe gerade ausgeführt brew cask install eclipseund bin bei Eclipse 4.3 gelandet. Als ich zum ersten Mal versuchte, es auszuführen, erhielt ich die gleiche Aufforderung, eine Java-Laufzeitumgebung zu installieren, als hätte ich kein Java installiert.

Also habe ich hier auf Apple StackExchange geschaut und https://apple.stackexchange.com/a/58841/52440 gefunden . Nachdem ich ausgeführt habe sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk /System/Library/Java/JavaVirtualMachines/1.6.0.jdk, kann ich jetzt Eclipse starten.

Wenn ich jedoch versuche, andere Apps zu starten, die Java erfordern, wie z. B. /usr/share/java/Tools/Java VisualVM.appund /opt/homebrew-cask/Caskroom/webstorm/6.0.2a/WebStorm.app, erhalte ich eine Fehlermeldung, dass kein kompatibles Java 1.6 verfügbar ist (siehe unten).

Screenshot des Fehlerdialogs

Weiß jemand, ob es möglich ist, diese anderen Apps zum Laufen zu bringen, oder benötigen sie wirklich Java 6 und können nicht mit Java 7 arbeiten?

Verknüpfen Sie keinen Nicht-Apple-Code mit einem von Apple kontrollierten Ort. Für Sonnenfinsternis siehe andere Fragen. Ich vermute, dass Java Vuual VM an die VM gebunden ist und wie in einem Apple-Bereich eine Apple-VM benötigt.
Java 6 wird weiterhin unterstützt und Apple bietet Upgrades an. Stellen Sie sich Java 6 und 7 als zwei separate Sprachen und nicht als Upgrade vor

Antworten (1)

Der Dialog wird angezeigt, weil Java von Oracle nur teilweise 'JVMCapabilities' gesetzt hat und sich selbst als nur befehlszeilenfähig ankündigt.

Als Superuser (verwenden Sie „sudo“, wenn Sie im Terminal bearbeiten), sollten Sie /Library/Java/JavaVirtualMachines/jdk.1.7.[version-and-release].jdk/Contents/Info.plistden folgenden Schlüssel bearbeiten und finden:

<key>JVMCapabilities</key>
  <array>
    <string>CommandLine</string>
  </array>

und fügen Sie es hinzu, um die fehlenden Werte einzuschließen:

<key>JVMCapabilities</key>
  <array>
    <string>CommandLine</string>
    <string>JNI</string>
    <string>BundledApp</string>
  </array>

Danach müssen Sie entweder neu starten, sich abmelden oder killall Finder, was auch immer zu funktionieren scheint. (Leute haben berichtet, dass ein Neustart des Finder ausreichte, aber ich musste mich abmelden.)

--
Quelle .