“To open XYZ you need to install the legacy Java SE 6 runtime.”

Diese Meldung kommt so gut wie immer, wenn ich ein Java-basiertes Programm auf dem Mac öffnen möchte.
Screenshot 2015-02-11 09.00.47

Hintergrund ist, dass Apple mit dem Update auf OS X Yosemite 10.10.2 (14C109) alle Java Version kleiner als Java 8 deaktiviert hat. Warum das nicht an die Hersteller kommunziert wurde und diese immer noch in den Mac Packages das JRE 1.6 eintragen erschließt sich mir nicht. Auf der Oracle Seite Information and system requirements for installing and using Oracle Java on Mac OS X findet sich dazu nur ein kurzer Hinweis

Oracle’s Java version 7u25 and below have been disabled by Apple on OS X. Updating to the latest release will allow Java to be run on Mac OS X.

Leider bringt einen die Installation von Java 8 alleine nicht ans Ziel, sondern es muss noch der Startparameter des Programms oder die JRE Version geändert werden.

Dazu im Finder mittels Rechtsklick auf die Applikation das Context Menü öffnen und Show Package Contents auswählen. Als nächstes öffnet Ihr die Datei Info.plist im Editor Eurer Wahl und sucht die Stelle an der das JRE oder der Pfad zur JavaVM angegeben ist.

YgCQ4flDj5

Nun passt Ihr das JRE an Eure Java Version an und speichert die Datei. Eure Version erfahrt Ihr über folgendes Kommando im Terminal.

java -version

Das Verzeichnis der aktuell installierten Java VM(s) befindet sich hier

/System/Library/Frameworks/JavaVM.framework/Versions"

Beispielauszug aus der Info.plist Datei bei Jasper Reports Studio
Vorher

<key>Eclipse</key>
    <array>
      <!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options:
        <string>-vm</string><string>/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Commands/java</string>
        <string>-vm</string><string>/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Commands/java</string>
      -->

Nachher

<key>Eclipse</key>
    <array>
      <string>-vm</string><string>/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java</string>

Bei yED ist zum Beispiel nur die Versionnummer in der Info.plist Datei angegeben. Hier müsste als nur die Versionsnummer ausgetauscht werden und ob das JRE oder das JDK installiert ist.

<key>JVMRuntime</key>
<string>1.8.0_25.jdk</string>