6 votes

Faites fonctionner Minecraft (ou Java Preferences.app) sur Java 7

Minecraft (et probablement d'autres applications) ne fonctionneront pas sur un système avec Java préinstallé supprimé et JDK 7 actuel installé. J'ai déjà créé un lien symbolique vers le répertoire Java 6 vers le répertoire actuel. D'autres applications comme Adobe Illustrator qui ont besoin de Java fonctionnent avec cette correction. Le message d'erreur indique aucune version compatible de java 1.5+ n'est disponible.

Capture d'écran du message d'erreur

Quelle serait une explication raisonnable pour laquelle cette application fonctionne sous Java 7 sur Linux et Windows mais pas sur Mac, et que peut-on faire pour y remédier ?

Résultat de /usr/libexec/java_home -V :

Machines virtuelles Java correspondantes (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 est un lien symbolique vers le répertoire /Library/, et 1.6.0.jdk est un lien symbolique vers jdk1.7.0_17.jdk, donc un seul JDK est installé._

3voto

Wing Tang Wong Points 629

Quel est le message d'erreur affiché dans le terminal?

En regardant cette discussion:

http://www.linuxquestions.org/questions/linux-games-33/minecraft-not-running-on-java-7-a-929983/

Le message d'erreur indique que les binaires Java de Minecraft sont liés aux versions 32 bits. Il semblerait que vous ayez la version 64 bits installée. Votre installation de Java7 supporte-t-elle le 32 bits?

Aussi, exécutez-vous les dernières mises à jour du code/mod Minecraft, etc?

Édition:

Étant donné le message d'erreur dans la réponse, cela m'a mené à ceci:

2 choses doivent être modifiées pour le faire fonctionner sur OSX x64 et voici ce que j'ai fait.. 

1) ajoutez x86_64 à Info.plist comme suit: 
JVMArchs 

i386 
x86_64 
ppc 

2) Définissez le flag d'exécution sur le fichier JavaApplicationStub 
chmod +x /Applications/Minecraft.app/Contents/MacOS/JavaApplicationStub 

maintenant ça fonctionne :)

Cela a été trouvé ici:

https://getsatisfaction.com/mojang/topics/osx_x86_64_minecraft_execution_fixed

Par le biais de:

http://www.minecraftforum.net/topic/487766-fixed-lsopenurlswithrole-failed-with-error-10810/

En ce qui concerne la vérification de la version de Java:

$ 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)

Indique un serveur VM 64 bits en mode mixte. Lors du test avec '-d32' et 'd64', le runtime Java devrait renvoyer un écran d'aide au lieu de générer une erreur, bien que cela n'exclut pas des bibliothèques 32 bits/64 bits dans les chemins qui manquent.

java -d32

java -d64

Mais le chmod ci-dessus pourrait être plus utile.

Remarque, je n'utilise pas Minecraft.app pour démarrer MineCraft sur un Mac. Voici ce que je fais:

Mon script d'enveloppe:

#!/usr/bin/env bash
java -Xmx3048M -Xms2024M -cp "$1" net.minecraft.LauncherFrame 

Et je l'exécute avec:

./run-minecraft minecraft.jar

J'ai le paramètre parce que parfois, j'aime exécuter des wrappers tiers autour de l'application MineCraft elle-même.

Addition:

D'ailleurs, c'est la méthode alternative que j'utilise pour lancer MineCraft, car MineCraft.app sur le Mac n'a jamais fonctionné de manière fiable pour moi.

  • http://minecraft.net/download
  • Téléchargez le fichier JAR pour "Minecraft pour Linux / Autre"
  • Testez le démarrage avec:

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

3voto

Chuck Deason Points 11

Minecraft pour Mac et d'autres applications Java sont régulièrement empaquetés avec JavaApplicationStub d'Apple. JavaApplicationStub est un petit programme qui décode le fichier Info.plist à l'intérieur de l'application, détecte Apple Java (6), affiche le message d'erreur "Pour ouvrir cette application, vous devez installer l'ancienne version de l'exécution Java SE 6" (si Apple Java n'est pas installé) et enfin invoque Apple Java avec les arguments corrects pour lancer l'application. Le problème est que JavaApplicationStub est câblé en dur avec la détection et le chargement d'Apple Java. JavaApplicationStub n'invoquera presque jamais Java d'Oracle, peu importe les arguments que vous lui fournissez ou comment vous essayez de le tromper pour invoquer Java d'Oracle.

La première étape consiste à modifier le fichier Info.plist dans Minecraft pour sortir JavaApplicationStub de la boucle et le remplacer par quelque chose de compatible avec Java d'Oracle. universalJavaApplicationStub est un script bash qui détecte automatiquement Java d'Oracle ou Apple Java et invoque l'application. J'ai décrit le processus dans un article de blog pour faire fonctionner Minecraft pour Mac peu importe la version de Java installée:

http://svexpertise.blogspot.com/2015/08/make-mac-minecraft-work-on-oracle-java.html

Presque toutes les solutions traitent de JavaApplicationStub. Certaines impliquent de le satisfaire (en installant Apple Java), certaines impliquent de l'éviter (en invoquant directement le .jar) et certaines impliquent de le remplacer (en installant un script bash personnalisé ou universalJavaApplicationStub).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X