JAR-Datei kann nicht ausgeführt werden

Ich habe eine kleine Java-Desktopanwendung mit NetBeans, Java 8 und JavaFX 8 auf meinem MacBook mit macOS High Sierra geschrieben. Ich kann es vom Terminal aus starten, indem ich ein Bash-Skript ausführe (unten erwähnt), aber ein Doppelklick auf die JAR-Datei im Finder schlägt fehl (Rechtsklick und Auswählen von Öffnen schlägt ebenfalls fehl) und ich erhalte einen Vorschlag, dass ich in Console.app nach Fehlern suchen soll, aber keinen anderen Hinweis darauf, was fehlschlägt. Es ist eine sehr spezialisierte App, die ich wahrscheinlich nur an ein paar Kollegen verteilen werde, die nicht mit Terminal arbeiten.

Die Google-Suche hat mir Lösungen gegeben, die veraltet sind, die Oracle-Lösung (veraltet) hat einen Link bereitgestellt, der sich als nutzlos erwiesen hat.

Was muss ich tun, um die JAR-Datei vom Finder ausführbar zu machen? Wie erhalte ich weitere Informationen darüber, was nicht stimmt? Da es nicht signiert ist, könnte es sein, dass Gatekeeper der Übeltäter ist.

Mein Skript ist in ~/bindem PATH enthalten ist. Ich habe einen Ordner ~/jarsfür Java-Apps, von denen jeder seinen eigenen Ordner hat. In diesen Ordner habe ich mein Projekt-> ... dist app.jar und meinen libs-Ordner kopiert, der externe JAR-Bibliotheken enthält. Das Skript hat Ausführungsberechtigungen. Hier ist das Skript:

#!/bin/bash
java -jar $HOME/jars/myApp/myApp.

Ich kann die App vom Terminal oder vom Finder aus starten, aber beim ersten Mal denkt der Finder, dass ich sie bearbeiten möchte, also muss ich Andere und dann Terminal wählen . Übrigens funktioniert es in Ubuntu genauso, ich habe einfach das Skript kopiert, es in abgelegt ~/binund den myAppOrdner in abgelegt ~/jars. Es lief meistens, aber die JRE auf der Ubuntu-Maschine, während Java 8 eine etwas ältere Version als die auf meinem Mac ist, und ich bekomme nach einer Weile einen Laufzeitfehler. Ich denke, dass das Aktualisieren auf dieselbe Version das Problem lösen wird, da ich nicht weiß, wie ich NetBeans dazu zwingen kann, die JRE einzuschließen.

Anstatt die Datei mit einem Doppelklick auszuführen, klicken Sie mit der rechten Maustaste und wählen Sie „Öffnen“.
@NimeshNeema Danke, das habe ich auch versucht und meine Frage bearbeitet.
Können Sie das Bash-Skript teilen, das Sie zum Starten der App verwenden?
@NimeshNeema Fertig!
Sie finden Console.appunter UtilitiesOrdner in /Applications. Rufen Sie alternativ Launchpad auf, öffnen Sie Otherden Ordner und Sie finden dort die Konsolen-App. Die Konsolen-App ist ein Protokollbetrachter für macOS.

Antworten (1)

In meinem Fall hatte ich eine Netbeans-App, die ich in Snow Leopard entwickelt hatte und die ich nicht per Doppelklick in High Sierra öffnen konnte.

Anstatt nur die .jar-Datei der App zu kopieren, kopierte ich das dist-Verzeichnis, das die .jar-Datei der App enthielt, sowie das Bibliotheksverzeichnis, das 6 weitere .jar-Dateien enthält, die hinzugefügt wurden, als ich ursprünglich die Distributionsversion kompilierte.

Das Doppelklicken auf die JAR-Datei der App funktionierte immer noch nicht, aber ich konnte „my_app.jar“ vom Terminal aus starten, indem ich in das dist-Verzeichnis cd-ing und es verwendete

java -jar meine_app.jar

(Hinweis: Ich habe das neueste JDK installiert.)