Lassen Sie Minecraft (oder Java Preferences.app) auf Java 7 laufen

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.

Screenshot der Fehlermeldung

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/JavaVirtualMachinesist ein Symlink zu /Library/one und 1.6.0.jdkist ein Symlink zu jdk1.7.0_17.jdk, daher wird nur ein JDK installiert.

Ja, ich habe diese Themen gesehen. Der zweite adressiert ein anderes Problem, das ich zuvor angesprochen habe ( "Ich habe das Java 6-Verzeichnis bereits mit dem aktuellen verknüpft" ). Der erste sagt im Grunde nur, Java 6 neu zu installieren.
Was ist Ihre aktuelle JRE-Version?
@JamesGrahamjava -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)
Aus Kommentaren sehe ich, dass Sie auch die App zum Laufen bringen möchten, um dies zu tun, müssen wir Info.plist sehen
@Mark Wie in einem Kommentar zur Antwort unten verlinkt: pastebin.com/baea0VKX
@AdamS das Problem ist, dass Java 7 eine andere Info.plist als Java 6 verwendet und daher bearbeitet werden muss - als Fehler an Minecraft melden - Einzelheiten finden Sie in diesen Antworten auf SO und AskDifferent - für eine App, um das richtige Bundle zu erstellen - und es gibt eine weitere großartige Antwort auf AskDifferent, die ich jetzt nicht finden kann

Antworten (2)

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.

  • http://minecraft.net/download
  • Laden Sie die JAR-Datei für "Minecraft für Linux / Andere" herunter
  • Testzündung mit:

    java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame

Die Terminalausgabe ist 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?
Meine Antwort wurde mit einer detaillierteren Antwort zu dem gerade geposteten Fehler und zur 32/64-Bit-Überprüfung aktualisiert.
Vielen Dank bisher! Wie genau sollen diese Variablen in der info.plist gesetzt werden? Ich finde seine Beschreibung etwas vage.
Die Datei info.plist ist eine XML-Textdatei. Sie sollten es mit 'vi' oder einem Editor Ihrer Wahl bearbeiten können. Es gibt auch einen Mac-Plist-Editor, der mit Xcode geliefert wird. Interessanterweise starte ich MineCraft nicht mit der .app, sondern über ein CLI-Statement: java -Xmx3048M -Xms2024M -cp minecraft.jar net.minecraft.LauncherFrame
Dies ist die Info.plist der .app: pastebin.com/baea0VKX . Wie bzw. wo kann ich x86_64da 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.
Ich habe den Konfigurationsblock zu Ihrer Pastbin Info.plist-Datei hinzugefügt und hier erneut eingefügt: pastebin.com/EVRAvZtv Hoffe, das funktioniert.
Leider hat es nicht funktioniert. Ich habe mit den Einstellungen herumgespielt und auch mit anderen hier erwähnten Dingen ( developer.apple.com/library/mac/#documentation/Java/Reference/… ), aber es hat auch nicht geholfen. Als ich versuchte, JVMVersions zu entfernen, öffnete es sich, stürzte aber sofort mit der folgenden Fehlermeldung ab: pastebin.com/CnFHxsBg
Schauen Sie es sich immer noch an, aber haben Sie zum Teufel versucht, 1.5+ in 1.6+ in der info.plist zu ändern? Ich muss auch die neueste MineCraft.app und OpenJDK 7 herunterladen, um das Problem besser zu simulieren. Ich erinnere mich, dass der Grund, warum ich mich für das Tarball-Format entschieden habe, darin bestand, dass die Minecraft.app bei mir immer wieder abstürzte. Wenn Sie mit einer alternativen Route einverstanden sind, kann ich eine zusätzliche Beschreibung erstellen. :|
Können Sie eigentlich die minecraft.jar-Methode ausprobieren und sehen, ob sie mit dieser Methode startet? Lassen Sie uns im Grunde die Apple Application Wrapper aus der Gleichung nehmen und sehen, ob das Straight-up-Jar funktioniert.
Wie gesagt, die .jar-Datei in der .app-Datei funktioniert ebenso wie die .jar-Datei von der Website. Ich wollte unbedingt herausfinden, warum die .app nicht funktioniert, da das Problem nicht auf die Minecraft.app beschränkt ist, sondern auch auf Java Preferences.app (ich nehme an, dass es sich um alle .app-umschlossenen .jar-Dateien handelt). Aber es scheint, dass dies der Fall ist ist etwas, das nicht so einfach zu lösen ist... Ich werde Sie trotzdem mit dem Kopfgeld für Ihre Mühe belohnen und versuchen, dem nachzugehen, wenn ich mehr Zeit habe. Vielen Dank so weit!
Danke. Ich habe mir das Java-Fehlerausgabeprotokoll, das Sie in Pastebin eingefügt haben, noch einmal angesehen und einen anderen Ansatz gewählt, um eine Lösung für das Problem zu finden, und bin auf diese Diskussion gestoßen, wie Java 7 unter Mac OS X 10.8 zum Laufen gebracht werden soll. Anscheinend verursacht es im Land von Mac OS X endlose Probleme und beeinträchtigt die Java Preferences.app, wodurch sie abstürzt. Problemumgehung/Fix: community.vmware.com/docs/DOC-22830 Diskussionen, die mich zu diesem Dokument geführt haben: community.vmware.com/thread/422493 Bitte lassen Sie mich wissen, ob das Problem dadurch behoben wird.