6 votos

Hacer que Minecraft (o Java Preferences.app) funcione en Java 7

Minecraft (y probablemente algunas otras aplicaciones) no se ejecutará en un sistema con el Java preinstalado eliminado y el actual JDK 7 instalado. Ya he hecho un enlace simbólico entre el directorio de Java 6 y el actual. Otras aplicaciones como Adobe Illustrator que necesitan Java funcionan con este arreglo. El mensaje de error dice no compatible version of java 1.5+ is available .

Screenshot of the error message

¿Cuál es una explicación razonable de por qué esa aplicación funciona con Java 7 en Linux y Windows pero no en Mac, y qué se puede hacer para que lo haga?

Salida de /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 es un Symlink al /Library/ uno, y 1.6.0.jdk es un enlace simbólico a jdk1.7.0_17.jdk Por lo tanto, sólo se instala un JDK._

3voto

Wing Tang Wong Puntos 611

¿Cuál es la salida del terminal que indica el error?

Mirando esta discusión:

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

La salida de error indica que los binarios Java de Minecraft están enlazados con versiones de 32 bits. Parece que tienes instalado 64 bits. ¿Su instalación de Java7 soporta 32bit?

Además, ¿estás ejecutando el último código de Minecraft/actualizaciones de mods/etc.?

Editar:

Dado el mensaje de error en la respuesta, me lleva a esto:

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

Eso se encontró en:

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

Vía:

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

En cuanto a la comprobación de la versión 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)

Indica una VM de servidor de 64 bits en modo mixto. Al probar con '-d32' y 'd64', el tiempo de ejecución de java debería informar con una pantalla de ayuda en lugar de dar un error, aunque esto no descarta las bibliotecas de 32 bits/64 bits en las rutas que faltan.

java -d32

java -d64

Pero el chmod de arriba podría ayudar más.

Nota, yo no uso Minecraft.app para iniciar MineCraft cuando lo ejecuto en un Mac. Hago lo siguiente:

Mi wrapper script:

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

Y yo lo corroboro:

./run-minecraft minecraft.jar

Tengo el parámetro porque a veces, me gusta ejecutar envolturas de terceros alrededor de la propia aplicación MineCraft.

Complemento:

Por cierto, este es el método alternativo que utilizo para encender MineCraft, ya que MineCraft.app en el Mac nunca me ha funcionado de forma fiable.

  • http://minecraft.net/download
  • Descargue el archivo JAR para "Minecraft para Linux / Other"
  • Prueba de encendido con:

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

3voto

Daniel Howard Puntos 36

Minecraft para el Mac y otras aplicaciones de Java se empaquetan habitualmente con JavaApplicationStub de Apple. JavaApplicationStub es un pequeño programa que decodifica el Info.plist dentro de la aplicación, detecta Apple Java (6), muestra el mensaje de error "Para abrir esta aplicación necesita instalar el tiempo de ejecución de Java SE 6 heredado" (si Apple Java no está instalado) y, finalmente, invoca Apple Java con los argumentos correctos para hacer funcionar la aplicación. El problema es que JavaApplicationStub está conectado con la detección y carga de Apple Java. JavaApplicationStub casi nunca invocará a Oracle Java, sin importar los argumentos que le des o cómo intentes engañarlo para que invoque a Oracle Java.

El primer paso es modificar el archivo Info.plist en Minecraft para sacar JavaApplicationStub del bucle y sustituirlo por algo que sea amigable con Oracle Java. universalJavaApplicationStub es un bash script que detecta automáticamente Oracle Java o Apple Java e invoca la aplicación. He descrito el proceso en una entrada de blog para hacer Minecraft para Mac trabajo sin importar lo que Java está instalado:

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

Prácticamente todas las soluciones se enfrentan a JavaApplicationStub. Algunas implican satisfacerlo (instalando Apple Java), otras implican evitarlo (invocando el .jar directamente) y otras implican reemplazarlo (instalando un bash script personalizado o universalJavaApplicationStub).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X