LSOpenURLsWithRole () falló con error -10810

5

Descargué e instalé la aplicación AirStream, y cuando la inicié no pasó nada. En Terminal la salida es

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

Esto parece ser un stub / launcher de 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 

Cuando lo ejecuto manualmente

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

Este es el resultado

/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 está correctamente instalado, y tengo otras aplicaciones Java ejecutándose sin problemas. ¿Cómo resuelvo este error?

    
pregunta hanxue 04.07.2014 - 06:03

1 respuesta

8

El error se produce porque JVM no pudo iniciarse: la aplicación Java en sí ha sido codificada para cargar libserver.dylib . Este archivo existe para Java 1.6 y versiones anteriores, pero no para Java 1.7 y superior.

Solución

Cree la estructura del directorio y el enlace simbólico de 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

Tenga en cuenta que esto es específico de JDK 1.8.0 actualización 5. Las rutas deberán actualizarse en tres lugares para futuras versiones.

Solución

Modifique el código de la aplicación Java para que no busque libserver.dylib. Realmente no deberías codificar la ruta de acceso a JVM. En su lugar, use /usr/libexec/java_home si necesita la ruta de JVM en OSX.

    
respondido por el hanxue 04.07.2014 - 06:26

Lea otras preguntas en las etiquetas