Wie kann ich eine JAR-Datei ausführbar machen?

11

Ich versuche, eine JAR-Anwendung unter Ubuntu auszuführen, daher habe ich OpenJDK Java 7 Runtime installiert, aber beim Öffnen dieser Anwendung wurde folgende Meldung angezeigt:

Die Datei '/home/aimad/Programms/jMerise/JMerise.jar' ist nicht als ausführbar markiert. Wenn dies von einer nicht vertrauenswürdigen Quelle heruntergeladen oder kopiert wurde, kann die Ausführung gefährlich sein. Weitere Informationen finden Sie im ausführbaren Bit.

Aimad Majdou
quelle

Antworten:

17

Sie können jederzeit eine JAR-Datei ausführen java -jar JMerise.jar.

Um die JAR-Datei selbst ausführbar zu machen, müssen Sie jedoch das ausführbare Bit setzen, wie in der Nachricht angegeben. chmod +x /home/aimad/Programms/jMerise/JMerise.jarwird dies erreichen.

Danach können Sie ./JMerise.jares ausführen.

man chmod Sie erhalten Informationen darüber, wie chmod funktioniert.

Siehe auch: https://wiki.ubuntu.com/Security/ExecutableBit

Gary
quelle
7

Klicken Sie mit der rechten Maustaste auf die Datei, klicken Sie auf Eigenschaften, wechseln Sie zur Registerkarte Berechtigungen und aktivieren Sie das Kontrollkästchen "Ausführen dieser Datei als Programm zulassen".

Geben Sie hier die Bildbeschreibung ein

RolandiXor
quelle
Was ist, wenn ich das obige Kontrollkästchen nicht aktivieren kann, um "die Ausführung einer Datei als Programm zuzulassen"? Ich überprüfe es, aber einen Moment später wird es automatisch deaktiviert!
user961627
@ user961627 Sie haben wahrscheinlich die JAR-Datei auf einer Partition gespeichert, die das ausführbare Bit nicht unterstützt. Weitere Informationen finden Sie unter Kann eine Datei nicht ausführbar machen .
Wjandrea
4

Zunächst müssen Sie sicherstellen, dass auf Ihrem System eine geeignete Java-Laufzeitumgebung vorhanden ist. Ubuntu hat openjdk im offiziellen Repo, das zu 99,99% mit Oracle Java bekämpft werden kann.

sudo apt-get install openjdk-7-jre

Als nächstes erstellen Sie eine Datei mit dem Namen java-jar-launcher.desktopin ~/.local/share/applicationsund geben Sie die folgenden Inhalte in ihm:

[Desktop Entry]
Type=Application
Name=Java Application Launcher
Icon=java
Exec=/usr/bin/java -jar %U
Categories=Application;Java
Terminal=False

Fügen Sie als Nächstes die folgende Zeile hinzu ~/.local/share/applications/mimeapps.list:

application/x-java-archive=java-jar-launcher.desktop;

Jetzt sollten Sie in der Lage sein, einfach auf JAR-Dateien zu doppelklicken, um sie zu starten. Wenn nichts passiert, klicken Sie mit der rechten Maustaste auf eine JAR-Datei, wählen Sie Eigenschaften aus und gehen Sie zur Registerkarte "Öffnen mit". Dort sollte "Java Application Launcher" angezeigt werden. Wählen Sie diese aus .

Diese Methode ist vorzuziehen (IMHO), da Sie auf diese Weise keine Ausführungsberechtigungen für JAR-Dateien erteilen, die möglicherweise gefährlich sein können. Diese Methode funktioniert nur in einer grafischen Umgebung und der Benutzer muss manuell auf die Datei doppelklicken.

tusharkant15
quelle
2

Da Sie Ihre JAR-Anwendung mit ausführen java -jar application.jar, bedeutet dies, dass sich Java auf Ihrem Weg befindet. Sie benötigen zwei einfache Dinge: 1) Fügen Sie einen Interpreter (der anscheinend ist #!java -jar) in die erste Zeile Ihrer JAR-Datei ein, so wie Sie es mit Ihren Shell-Skripten tun: echo '#!java -jar' > app.jar cat application.jar >> app.jar mv app.jar application.jar

Wenn Sie den Inhalt Ihrer JAR-Datei katzen, sehen Sie, dass er mit Beispiel beginnt: #!java -jar PK ^lN BOOT-INF/PK ..... ..... 2) Fügen Sie das Ausführungsattribut hinzu, indem chmod +x application.jar Sie es jetzt über "selbst ausführen" können ./application.jar.

gość
quelle
0

Wenn das Ausführen einer JAR-Datei über die Befehlszeile funktioniert ( java -jar myFile.jar), ein Doppelklick in der GUI jedoch nicht funktioniert und wenn dies erfolgreich zu sein sudo chmod +x myFile.jarscheint, Sie es jedoch immer noch nicht mit einem Doppelklick öffnen können und wenn Sie mit der rechten Maustaste auf die JAR- Datei klicken Datei> Eigenschaften> Berechtigungen> "Datei als Programm ausführen lassen" funktioniert nicht (dh das Kontrollkästchen wechselt sofort nach dem Klicken zurück), dann befindet sich die JAR-Datei wahrscheinlich in einem NTFS-Dateisystem, für das keine Ausführungsberechtigungen zulässig sind eine Datei pro Datei. (Möglicherweise tritt dieses Problem auf, wenn Sie beispielsweise dual booten und eine gemeinsam genutzte NTFS-Partition zwischen Ubuntu und Windows haben.)

Das Erstellen eines Starters (wie in @ tusharkant15 beschrieben) funktioniert, da hinter den Kulissen, die Sie ausführen /usr/bin/java, nicht die JAR-Datei selbst. Das Verschieben der JAR-Datei in ein anderes Dateisystem, das nicht NTFS ist, funktioniert ebenfalls.

Drammock
quelle