Wie kann ich eine .jar-Datei über das Terminal ausführen?

Ich weiß, dass ich zum Ausführen einer Datei den Befehl . und dann den Dateinamen mit einem Leerzeichen dazwischen verwende. Aber ich versuche, eine .jar-Datei mit dem Befehl . auszuführen, und es funktioniert nicht. Ich bin in die Eigenschaften gegangen und habe die Datei als ausführbar markiert und sie mit Java laufen lassen.

Gibt es eine Möglichkeit, eine Datei mit Java im Bash Terminal auszuführen? Ich versuche, eine Minecraft.jar-Datei auszuführen]1

Ich versuche, die Datei Minecraft.jar auszuführen.

Lösung

Die .-Syntax kann nur verwendet werden, um Shell-Skripte auszuführen (durch "sourcing").

Sie müssen den Befehl java verwenden, um eine .jar-Datei auszuführen:

java -jar Minecraft.jar

Wenn Sie java nicht installiert haben, können Sie dies durch die Installation des Pakets default-jre¹ beheben. Sie können überprüfen, ob Sie java bereits installiert haben, indem Sie es in einem Terminal ausführen:

java -version 

[1]: Dies installiert die Standard-Java-Laufzeitumgebung openjdk. Sie können stattdessen openjdk-8-jre, oder openjdk-7-jre, oder openjdk-6-jre verwenden, wenn Sie dies bevorzugen - je nachdem, was in Ihrer Ubuntu-Version verfügbar ist.

Kommentare (1)

Linux ist durchaus in der Lage, eine fremde Binärdatei, wie z. B. eine JAR-Datei, auszuführen. So funktioniert zum Beispiel Wine. Um JAR-Dateien als ausführbare Dateien auszuführen, gehen Sie in der Konsole wie folgt vor

sudo apt-get install binfmt-support

Cd zu Ihrer JAR-Datei und ändern Sie sie in ausführbar (Sie können dies auch über die Dateieigenschaften in Nautilus tun)

chmod a+rx myjar.jar

Führen Sie Ihre JAR-Datei aus, als wäre sie eine beliebige ausführbare Binärdatei oder ein Shell-Skript

./myjar.jar

Hinweis: Stellen Sie sicher, dass Sie das binfmt_misc Linux-Kernel-Modul geladen haben. Wenn Sie Ihren eigenen kompilierten Kernel ohne dieses Modul verwenden, wird binfmt-support nicht funktionieren.

Kommentare (2)

Wenn es ein ausführbares jar ist, dann

java -jar Minecraft.jar 

Nicht alle jar-Archive enthalten eine ausführbare Klasse, die in der Manifest-Datei deklariert ist, aber wenn sie vorhanden ist, funktioniert dies.

Btw.: Die meisten Programme werden nicht von der Shell aus mit dem Punkt gestartet. Der Punkt ist eine Abkürzung für source, und er funktioniert nur in der Bash und einigen anderen Shells, um ein Skript in den Bereich der aktuellen Sitzung aufzunehmen.

Ein kompiliertes Binärprogramm xybin wird einfach mit seinem Namen gestartet, wenn es im Pfad steht:

xybin 

oder mit seinem absoluten Pfad:

/home/foo/proj/test/xybin

oder mit dem relativen Pfad:

proj/test/xybin

oder wenn Sie sich im Verzeichnis der Datei befinden, mit diesem relativen Pfad:

./xybin

Die Datei muss für Sie als ausführbar gekennzeichnet sein (siehe: chmod). All das oben Gesagte gilt auch für Shellscripts, aber sie haben oft die Endung .sh, und Sie können ein Shellscript starten, indem Sie den Interpreter aufrufen, und dann muss es nicht als ausführbar markiert sein:

 bash xy.sh

Wenn Sie keine neue Bash starten wollen, können Sie den Quelltext verwenden, und das tun Sie auch, um Funktionsdefinitionen, Aliase und Variableneinstellungen zu übernehmen.

Kommentare (0)