Échec de LSOpenURLsWithRole () avec l'erreur -10810 - L'application téléchargée ne démarre pas

14

J'essaie d'exécuter une application téléchargée sur Internet (par exemple, Jabref) mais il semble qu'elle échoue silencieusement. Lorsque j'essaie de l'ouvrir en double-cliquant dessus, rien ne se passe. Lorsque j'utilise le terminal, je reçois le message suivant:

Échec de LSOpenURLsWithRole () avec l'erreur -10810 pour le fichier ... / xxxx.app

J'ai essayé plusieurs suggestions que j'ai trouvées ici comme changer les autorisations et modifier le fichier Info.plist, mais rien ne fonctionne.

Parce que c'est une application Java, j'ai essayé de l'exécuter via un terminal en utilisant

java -cp "CLASSPATH" MAINCLASS

et ça marche bien.

Juste pour mentionner que j'obtiens cette erreur non seulement avec cette application, mais pour quelques autres applications.

Merci d'avance.

Stigmate
la source

Réponses:

8

LSOpenURLsWithRole est une fonction utilisée pour associer un fichier à un programme. Le fichier sur lequel vous double-cliquez n'est pas réellement une application, mais un fichier de données.

C'est ainsi que, par exemple, lorsque vous double-cliquez sur un document texte, le programme TextEdit ou une autre application associée est lancé.

Vous devez l'associer au runtime java, en supposant que vous l'avez installé.

Si vous cliquez avec le bouton droit sur le fichier et sélectionnez Obtenir des informations, le volet d'informations comporte une section intitulée «Ouvrir avec:». Cela devrait être défini sur le runtime java.

Le Chevalier Noir
la source
3

Pour toute personne venant ici qui voit ce problème pour un programme non Java: J'obtenais le même message d'erreur lorsque j'essayais d'exécuter un fichier .app qui contient un exécutable Mach-O. Essayer d'exécuter l'exécutable directement depuis le bundle (par exemple Foo.app/Contents/MacOS/bar) m'a donné une bien meilleure erreur indiquant qu'il me manquait une dépendance de bibliothèque dynamique:

dyld: Library not loaded:/usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets

Quelque chose à essayer si vous voyez cette erreur.

AndrewJC
la source
1

Je rencontrais également cette erreur avec un programme Java que j'essayais de déployer. Je n'ai pas pu le faire fonctionner sur mon deuxième Mac: 10.11.6. J'ai cherché partout la réponse, mais je n'en ai jamais trouvé, alors je mets ça ici pour que les autres en profitent. En lançant la console système, j'ai découvert le message d'erreur indiquant que le programme "ouvert" n'a pas pu trouver le programme "JavaApplicationStub" dans le contenu du bundle. Le problème est que mon bundle utilisait "JavaAppLauncher" pour se lancer. Je venais de passer de l'ancien Apple JarBundler à Oracle AppBundler pour pouvoir signer l'application, et le nom du programme de lancement est différent. La clé ici est que le nouveau bundle (version 7.1.1) remplaçait l'ancien (version 7.1.0) et avait le même nom d'application. L'ancien utilisait JavaApplicationStub pour se lancer.

Il semble que les propriétés Info.plist du programme aient été mises en cache et qu'il utilisait des valeurs obsolètes pour lancer le nouveau bundle. Je ne sais pas si le cache est effacé à la déconnexion ou au redémarrage, ou si cela est corrigé dans les versions plus récentes d'OS X, mais je dois faire en sorte que cela fonctionne sans problème pour tous les utilisateurs finaux.

J'ai contourné le problème en incluant le numéro de version dans le nom du programme.

wjrl
la source