Problem beim Ausführen der JAR-Datei in Ubuntu

Problem beim Ausführen der JAR-Datei in Ubuntu

Warum wird ein .jarSkript ausgeführt, wenn ich es wie ausführe java -jar myfile.jar, aber nicht, wenn ich es wie ausführe ./myfile.jar

Antwort1

Wenn Sie Ihr JAR mit ausführen, java -jar myfile.jarsagen Sie Ihrer Shell, dass sie den javaBefehl ausführen soll, und übergeben ihr einige Argumente, die javasie versteht. Wenn Sie es jedoch mit ausführen, ./myfile.jarbitten Sie die Shell, den Interrupter zu bestimmen, mit dem es ausgeführt werden soll, was sie nicht tun kann.

Die Shell sucht am Anfang des Skripts nach der Shebang-Zeile, um zu wissen, mit welcher Anwendung das Skript ausgeführt werden soll. Daher sehen Sie Shell-Skripts, die wie folgt beginnen:

#!/bin/bash

Oder Python-Skripte beginnen mit

#!/usr/bin/python

Im Grunde sagen Sie der Shell, dass sie das Skript mit der Anwendung ausführen soll, die Sie unter /bin/bashoder finden /usr/bin/python. Im Fall Ihrer JAR-Datei kann die Shell das Shebang nicht finden und weiß daher nicht, wie sie den Code ausführen soll.

In der Vergangenheit habe ich Wrapper-Skripte zum Ausführen von Java-Anwendungen verwendet, also etwas Ähnliches wie:

#!/bin/bash

java -jar /path/to/myfile.jar

Dann müssen Sie die Datei nur noch ausführbar machen chmodund können sie wie jedes andere Shell-Skript ausführen.

Antwort2

Ich habe JDK mit sudo apt-get install openjdk-7-jdk und JRE mit sudo apt-get install openjdk-7-jre installiert, aber ich hatte immer noch dieses Problem. Ich dachte, das könnte daran liegen, dass mein System den Java-Pfad nicht finden konnte. Als ich schließlich das Oracle JDK7-Installationsprogramm mit den folgenden Befehlen installierte, konnte ich die JAR-Datei mit dem Befehl ./myfile.jar ausführen. Ich habe die folgenden Befehle zur Installation verwendet:

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get installiere Oracle-JDK7-Installer

verwandte Informationen