LSOpenURLsWithRole () non riuscito con errore -10810

5

Scaricato e installato l'applicazione AirStream, e quando l'ho lanciato non succede nulla. In Terminal l'output è

$ open /opt/homebrew-cask/Caskroom/airstream/latest/AirStream.app
LSOpenURLsWithRole() failed with error -10810 for the file /opt/homebrew-cask/Caskroom/airstream/latest/AirStream.app.

Questo sembra essere uno stub / launcher Java

$ file /opt/homebrew-cask/Caskroom/airstream/latest/AirStream.app/Contents/MacOS/JavaApplicationStub 
/opt/homebrew-cask/Caskroom/airstream/latest/AirStream.app/Contents/MacOS/JavaApplicationStub: Mach-O universal binary with 2 architectures
/opt/homebrew-cask/Caskroom/airstream/latest/AirStream.app/Contents/MacOS/JavaApplicationStub (for architecture i386):  Mach-O executable i386
/opt/homebrew-cask/Caskroom/airstream/latest/AirStream.app/Contents/MacOS/JavaApplicationStub (for architecture x86_64):    Mach-O 64-bit executable x86_64
Lees-MacBook-Pro:Casks hanxue$ oprn /opt/homebrew-cask/Caskroom/airstream/latest/AirStream.app/Contents/MacOS/JavaApplicationStub 

Quando lo eseguo manualmente

$ open /opt/homebrew-cask/Caskroom/airstream/latest/AirStream.app/Contents/MacOS/JavaApplicationStub 

Questo è il risultato

/opt/homebrew-cask/Caskroom/airstream/latest/AirStream.app/Contents/MacOS/JavaApplicationStub ; exit;
$ /opt/homebrew-cask/Caskroom/airstream/latest/AirStream.app/Contents/MacOS/JavaApplicationStub ; exit;
JavaVM: Failed to load JVM: /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bundle/Libraries/libserver.dylib
JavaVM: Failed to load JVM: /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bundle/Libraries/libserver.dylib
JavaVM FATAL: Failed to load the jvm library.
[JavaAppLauncher Error] JNI_CreateJavaVM() failed, error: -1
logout

Java è installato correttamente e ho altre applicazioni Java in esecuzione senza intoppi. Come risolvo questo errore?

    
posta hanxue 04.07.2014 - 06:03
fonte

1 risposta

8

L'errore si verifica perché non è stato possibile avviare JVM: l'applicazione Java stessa è stata codificata per caricare libserver.dylib . Questo file esiste per Java 1.6 e versioni precedenti, ma non per Java 1.7 e versioni successive.

Soluzione

Crea la struttura di directory e il collegamento simbolico da libjvm.dylib a libserver.dylib

$ sudo mkdir -p /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bundle/Libraries/
$ sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bundle/Libraries/libserver.dylib

Si noti che questo è specifico per l'aggiornamento JDK 1.8.0. I percorsi dovranno essere aggiornati in tre punti per le versioni future.

Soluzione

Modificare il codice dell'applicazione Java in modo che non cerchi libserver.dylib. Non dovresti davvero codificare il percorso di JVM. Invece, usa /usr/libexec/java_home se hai bisogno del percorso di JVM in OSX.

    
risposta data 04.07.2014 - 06:26
fonte

Leggi altre domande sui tag