Minecraft (und wahrscheinlich einige andere Anwendungen) läuft nicht auf einem System, auf dem das vorinstallierte Java entfernt und das aktuelle JDK 7 installiert ist. Ich habe das Java 6-Verzeichnis bereits mit dem aktuellen verknüpft. Andere Anwendungen wie Adobe Illustrator, die Java benötigen, funktionieren mit diesem Fix. Die Fehlermeldung besagt no compatible version of java 1.5+ is available
.
Was ist eine vernünftige Erklärung, warum diese Anwendung auf Java 7 unter Linux und Windows, aber nicht auf Mac läuft, und was kann man dafür tun?
Ausgabe von /usr/libexec/java_home -V
:
Matching Java Virtual Machines (4):
1.7.0_17, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.7.0_17, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
1.7.0_17, x86_64: "Java SE 7" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.7.0_17, x86_64: "Java SE 7" /System/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
/System/Library/Java/JavaVirtualMachines
ist ein Symlink zu /Library/
one und 1.6.0.jdk
ist ein Symlink zu jdk1.7.0_17.jdk
, daher wird nur ein JDK installiert.
Minecraft für den Mac und andere Java-Anwendungen werden routinemäßig mit Apples JavaApplicationStub gepackt. JavaApplicationStub ist ein kleines Programm, das die Info.plist in der Anwendung dekodiert, Apple Java (6) erkennt und die Fehlermeldung „Um diese Anwendung zu öffnen, müssen Sie die ältere Java SE 6-Laufzeitumgebung installieren“ anzeigt (wenn Apple Java nicht installiert ist). ) und ruft schließlich Apple Java mit den richtigen Argumenten auf, um die App zum Laufen zu bringen. Das Problem ist, dass JavaApplicationStub fest mit Apple Java-Erkennung und -Laden verdrahtet ist. JavaApplicationStub wird Oracle Java fast nie aufrufen, egal mit welchen Argumenten Sie es füttern oder wie Sie versuchen, es dazu zu bringen, Oracle Java aufzurufen.
Der erste Schritt besteht darin, die Info.plist-Datei in Minecraft zu ändern, um JavaApplicationStub aus der Schleife zu nehmen und durch etwas zu ersetzen, das Oracle Java-freundlich ist. universalJavaApplicationStub ist ein Bash-Skript, das Oracle Java oder Apple Java automatisch erkennt und die App aufruft. Ich habe den Prozess in einem Blogbeitrag beschrieben, damit Minecraft für Mac funktioniert, egal welches Java installiert ist:
http://svexpertise.blogspot.com/2015/08/make-mac-minecraft-work-on-oracle-java.html
So ziemlich alle Lösungen kommen mit JavaApplicationStub zurecht. Bei einigen muss es erfüllt werden (durch Installieren von Apple Java), bei einigen wird es vermieden (durch direktes Aufrufen der .jar-Datei) und bei einigen wird es ersetzt (durch Installieren eines benutzerdefinierten Bash-Skripts oder von universalJavaApplicationStub).
Was ist die Terminalausgabe, die den Fehler angibt?
Betrachtet man diese Diskussion:
http://www.linuxquestions.org/questions/linux-games-33/minecraft-not-running-on-java-7-a-929983/
Die Fehlerausgabe zeigt an, dass die Minecraft-Java-Binärdateien mit 32-Bit-Versionen verknüpft sind. Anscheinend hast du 64bit installiert. Unterstützt Ihre Java7-Installation 32-Bit?
Führen Sie auch die neuesten Minecraft-Code-/Mod-Updates/usw. aus?
Bearbeiten:
Angesichts der Fehlermeldung in der Antwort führte sie mich zu folgendem:
2 things are needed to be changed to make it run on OSX x64 and this is what i done..
1) add in x86_64 to the Info.plist as follows:
JVMArchs
i386
x86_64
ppc
2) Set the execute flag on the JavaApplicationStub file
chmod +x /Applications/Minecraft.app/Contents/MacOS/JavaApplicationStub
now it works :)
Das wurde gefunden unter:
https://getsatisfaction.com/mojang/topics/osx_x86_64_minecraft_execution_fixed
Über:
http://www.minecraftforum.net/topic/487766-fixed-lsopenurlswithrole-failed-with-error-10810/
Bezüglich der Überprüfung der Java-Version:
$ java -version
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01-447-11M4203)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-447, mixed mode)
Zeigt eine 64-Bit-Server-VM im gemischten Modus an. Beim Testen mit „-d32“ und „d64“ sollte die Java-Laufzeit mit einem Hilfebildschirm im Vergleich zu Fehlern zurückmelden, obwohl dies 32-Bit-/64-Bit-Bibliotheken in den fehlenden Pfaden nicht ausschließt.
java -d32
java -d64
Aber der obige chmod könnte mehr helfen.
Beachten Sie, dass ich Minecraft.app nicht verwende, um MineCraft zu starten, wenn ich es auf einem Mac ausführe. Ich mache folgendes:
Mein Wrapper-Skript:
#!/usr/bin/env bash
java -Xmx3048M -Xms2024M -cp "$1" net.minecraft.LauncherFrame
Und ich führe es durch:
./run-minecraft minecraft.jar
Ich habe den Parameter, weil ich manchmal gerne Drittanbieter-Wrapper um die MineCraft-Anwendung selbst herum laufen lasse.
Hinzufügen Auf:
Übrigens, das ist die alternative Methode, die ich verwende, um MineCraft zu starten, da MineCraft.app auf dem Mac bei mir nie zuverlässig funktioniert hat.
Testzündung mit:
java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Minecraft.app.
. Minecraft.app ist das Neueste von der Website. Wie finde ich heraus, ob meine Java-Installation 32 Bit unterstützt?x86_64
da hinzufügen? Noch eine Anmerkung: Ich konnte das Spiel mit Minecraft.app/Contents/Resources/java/MinecraftLauncher.jar perfekt starten, es hat also definitiv etwas mit der .app zu tun.
Thilo
Apfelschale
James Graham
Apfelschale
java -version
java version "1.7.0_17" Java(TM) SE Runtime Environment (build 1.7.0_17-b02) Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
mmmmmm
Apfelschale
mmmmmm