LSOpenURLsWithRole () ist mit dem Fehler -10810 fehlgeschlagen - Die heruntergeladene App wird nicht gestartet

14

Ich versuche, eine aus dem Internet heruntergeladene Anwendung (z. B. Jabref) auszuführen, aber es scheint, dass sie stillschweigend fehlschlägt. Wenn ich versuche, es durch Doppelklicken zu öffnen, passiert nichts. Wenn ich das Terminal benutze, erhalte ich folgende Meldung:

LSOpenURLsWithRole () ist mit dem Fehler -10810 für die Datei ... / xxxx.app fehlgeschlagen

Ich habe verschiedene Vorschläge ausprobiert, die ich hier gefunden habe, z. B. das Ändern von Berechtigungen und das Ändern der Datei Info.plist, aber nichts funktioniert.

Da es sich um eine Java-Anwendung handelt, habe ich versucht, sie über das Terminal mit auszuführen

java -cp "CLASSPATH" MAINCLASS

und es funktioniert gut.

Nur um zu erwähnen, dass ich diesen Fehler nicht nur mit dieser App erhalte, sondern auch für einige andere Anwendungen.

Danke im Voraus.

Stigma
quelle

Antworten:

8

Die LSOpenURLsWithRole ist eine Funktion, mit der eine Datei einem Programm zugeordnet wird. Die Datei, auf die Sie doppelklicken, ist eigentlich keine Anwendung, sondern eine Datendatei.

So wird beispielsweise beim Doppelklicken auf ein Textdokument das TextEdit-Programm oder eine andere zugehörige App gestartet.

Sie müssen es mit der Java-Laufzeit verknüpfen, vorausgesetzt, Sie haben es installiert.

Wenn Sie mit der rechten Maustaste auf die Datei klicken und Informationen abrufen auswählen, enthält der Infobereich einen Abschnitt mit dem Namen "Öffnen mit:". Das sollte auf die Java-Laufzeit eingestellt sein.

Der dunkle Ritter
quelle
3

Für alle, die hierher kommen und dieses Problem bei einem Nicht-Java-Programm sehen: Beim Versuch, eine AP-Datei auszuführen, die eine ausführbare Mach-O-Datei enthält, wurde dieselbe Fehlermeldung angezeigt. Der Versuch, die ausführbare Datei direkt aus dem Bundle heraus auszuführen (z. B. Foo.app/Contents/MacOS/bar), ergab einen viel besseren Fehler, der darauf hinwies, dass mir eine dynamische lib-Abhängigkeit fehlte:

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

Versuchen Sie es, wenn dieser Fehler auftritt.

AndrewJC
quelle
1

Dieser Fehler trat auch bei einem Java-Programm auf, das ich bereitstellen wollte. Ich konnte es auf meinem zweiten Mac nicht zum Laufen bringen: 10.11.6. Ich habe überall nach der Antwort gesucht, aber nie eine gefunden, also setze ich sie hier ein, damit andere davon profitieren. Beim Starten der Systemkonsole stellte ich die Fehlermeldung fest, dass das Programm "open" das Programm "JavaApplicationStub" im Bundle-Inhalt nicht finden konnte. Das Problem ist, dass mein Bundle zum Starten "JavaAppLauncher" verwendet hat. Ich hatte gerade von der Verwendung des alten Apple JarBundler zum Oracle AppBundler gewechselt, damit ich die App signieren konnte, und der Name des Startprogramms ist anders. Der Schlüssel hier ist, dass das neue Bundle (Version 7.1.1) das alte (Version 7.1.0) ersetzte und denselben Anwendungsnamen hatte. Der alte verwendete JavaApplicationStub zum Starten.

Es scheint, dass die Info.plist-Eigenschaften für das Programm zwischengespeichert wurden und veraltete Werte zum Starten des neuen Bundles verwendet wurden. Ich weiß nicht, ob der Cache beim Abmelden oder Neustarten geleert wird oder ob dies in neueren Versionen von OS X behoben ist, aber ich muss dies für alle Endbenutzer reibungslos funktionieren lassen.

Ich habe das Problem umgangen, indem ich die Versionsnummer in den Programmnamen aufgenommen habe.

wjrl
quelle