5 votes

LSOpenURLsWithRole() a échoué avec l'erreur -10810

J'ai téléchargé et installé l'application AirStream, et lorsque je l'ai lancée, rien ne se passe. Dans Terminal le résultat est

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

Cela semble être un 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 

Quand je l'exécute manuellement

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

Voici le résultat

/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 correctement installé et d'autres applications Java fonctionnent sans problème. Comment puis-je résoudre cette erreur ?

8voto

hanxue Points 1028

L'erreur se produit parce que la JVM n'a pas réussi à se lancer - l'application Java elle-même a été codée en dur pour se charger. libserver.dylib . Ce fichier existe pour Java 1.6 et plus, mais pas pour Java 1.7 et plus.

Solution de rechange

Créez la structure du répertoire et le lien symbolique à partir de libjvm.dylib à 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

Notez que ceci est spécifique au JDK 1.8.0 update 5. Les chemins devront être mis à jour à trois endroits pour les versions ultérieures.

Solution

Modifiez le code de l'application Java pour qu'elle ne recherche pas libserver.dylib. Vous ne devriez vraiment pas coder en dur le chemin d'accès à la JVM. Utilisez plutôt /usr/libexec/java_home si vous avez besoin du chemin de la JVM dans OSX.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X