Haga que Minecraft (o Java Preferences.app) se ejecute en Java 7

6

Minecraft (y probablemente otras aplicaciones) no se ejecutará en un Sistema con el Java preinstalado eliminado y el JDK 7 actual instalado. Ya he enlazado el directorio de Java 6 al actual. Otras aplicaciones como Adobe Illustrator que necesitan Java funcionan con esta solución. El mensaje de error indica no compatible version of java 1.5+ is available .

¿CuálesunaexplicaciónrazonabledeporquéesaaplicaciónseejecutaenJava7enLinuxyWindowsperonoenMac,yquésepuedehacerparaquelohaga?

Salidade/usr/libexec/java_home-V:

MatchingJavaVirtualMachines(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 enlace simbólico al /Library/ one, y 1.6.0.jdk es un enlace simbólico a jdk1.7.0_17.jdk , por lo tanto, solo se está instalando un JDK.

    
pregunta A.S. 07.04.2013 - 22:25

2 respuestas

3

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

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

enlace

Casi todas las soluciones manejan JavaApplicationStub. Algunos implican su satisfacción (mediante la instalación de Apple Java), otros implican evitarlo (invocando el .jar directamente) y otros implican reemplazarlo (mediante la instalación de un script bash personalizado o universalJavaApplicationStub).

    
respondido por el Daniel Howard 15.08.2015 - 22:21
3

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

Mirando esta discusión:

enlace

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

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

Editar:

Dado el mensaje de error en la respuesta, me llevó 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:

enlace

Vía:

enlace

Con respecto 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 máquina virtual de 64 bits en modo mixto. Cuando se realizan pruebas con '-d32' y 'd64', el tiempo de ejecución de Java debe informar con una pantalla de ayuda frente a errores, aunque esto no descarta las bibliotecas de 32 bits / 64 bits en las rutas que faltan.

java -d32

java -d64

Pero el chmod anterior podría ayudar más.

Nota, no uso Minecraft.app para iniciar MineCraft cuando lo ejecuto en una Mac. Yo hago lo siguiente:

Mi script de envoltorio:

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

Y lo ejecuto por:

./run-minecraft minecraft.jar

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

AddOn:

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

  • enlace
  • Descargue el archivo JAR para "Minecraft para Linux / Otro"
  • Prueba de activación con:

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

respondido por el Wing Tang Wong 09.04.2013 - 23:55

Lea otras preguntas en las etiquetas