Rendi Minecraft (o Java Preferences.app) eseguito su Java 7

6

Minecraft (e probabilmente alcune altre applicazioni) non funzioneranno su un sistema con Java preinstallato rimosso e l'attuale JDK 7 installato. Ho già collegato la directory Java 6 a quella corrente. Altre applicazioni come Adobe Illustrator che necessitano di Java funzionano con questa correzione. Il messaggio di errore indica no compatible version of java 1.5+ is available .

Qualèunaspiegazioneragionevoledelmotivopercuil'applicazionevieneeseguitasuJava7suLinuxeWindows,manonsuMac,ecosasipuòfareperfarlo?

Outputdi/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 è un collegamento simbolico a /Library/ uno e 1.6.0.jdk è un collegamento simbolico a jdk1.7.0_17.jdk , quindi viene installato solo un JDK.

    
posta A.S. 07.04.2013 - 22:25
fonte

2 risposte

3

Minecraft per Mac e altre applicazioni Java sono costantemente imballate con JavaApplicationStub di Apple. JavaApplicationStub è un piccolo programma che decodifica l'Info.plist all'interno dell'applicazione, rileva Apple Java (6), mostra il messaggio di errore "Per aprire questa applicazione è necessario installare Java SE 6 runtime" (se Apple Java non è installato ) e infine invoca Apple Java con gli argomenti corretti per far funzionare l'app. Il problema è che JavaApplicationStub è cablato con il rilevamento e il caricamento di Apple Java. JavaApplicationStub non invocherà quasi mai Oracle Java, indipendentemente da quali argomenti lo si alimenta o da come si tenta di ingannarlo per invocare Oracle Java.

Il primo passaggio consiste nel modificare il file Info.plist in Minecraft per rimuovere JavaApplicationStub dal ciclo e sostituirlo con qualcosa che sia Oracle Java friendly. universalJavaApplicationStub è uno script di bash che rileva automaticamente Oracle Java o Apple Java e invoca l'app. Ho descritto il processo in un post sul blog per far funzionare Minecraft per Mac, qualunque sia l'installazione di Java:

link

Praticamente tutte le soluzioni fanno fronte a JavaApplicationStub. Alcuni prevedono di soddisfarlo (installando Apple Java), alcuni prevedono di evitarlo (invocando direttamente il .jar) e alcuni lo sostituiscono (installando uno script bash personalizzato o universalJavaApplicationStub).

    
risposta data 15.08.2015 - 22:21
fonte
3

Qual è l'uscita del terminale che indica l'errore?

Guarda questa discussione:

link

L'output dell'errore indica che i binari di Minecraft Java sono collegati a versioni a 32 bit. Sembra che tu abbia installato 64 bit. La tua installazione Java7 supporta 32 bit?

Inoltre, stai usando gli ultimi aggiornamenti di codice / mod di Minecraft / etc?

Modifica:

Dato il messaggio di errore nella risposta, mi porta a questo:

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

È stato trovato in:

link

Via:

link

Per quanto riguarda il controllo della versione di 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 la macchina virtuale server a 64 bit in modalità mista. Quando si esegue il test con '-d32' e 'd64', il runtime java dovrebbe riportare una schermata di aiuto in caso di errore, anche se ciò non esclude le librerie a 32 bit / 64 bit nei percorsi mancanti.

java -d32

java -d64

Ma il chmod qui sopra potrebbe aiutare di più.

Nota, non uso Minecraft.app per avviare MineCraft quando lo eseguo su un Mac. Faccio quanto segue:

Il mio script wrapper:

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

E lo eseguo per:

./run-minecraft minecraft.jar

Ho il parametro perché a volte mi piace eseguire wrapper di terze parti attorno all'applicazione MineCraft stessa.

AddOn:

Btw, questo è il metodo alternativo che utilizzo per sparare a MineCraft, dal momento che MineCraft.app sul Mac non ha mai funzionato in modo affidabile per me.

  • link
  • Scarica il file JAR per "Minecraft per Linux / Altro"
  • Prova a sparare con:

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

risposta data 09.04.2013 - 23:55
fonte

Leggi altre domande sui tag