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

124

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 auszuführen, .und es funktioniert nicht. Ich ging in die Eigenschaften und markierte es als ausführbar und ließ es mit Java laufen.

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

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

Jaorizabal
quelle
4
Hallo und willkommen, Jaorizabal. Ich habe deine Frage leicht korrigiert. Vielleicht können Sie eine Rechtschreibprüfung für Ihren Browser installieren, um die nächste Frage selbst zu verbessern. Ein weiterer Hinweis: Bei Textproblemen können Sie Text mit der Maus im Terminal markieren und ihn dann mit einem mittleren Klick auf das Mausrad in das Bearbeitungsfeld Ihres Browsers (und anderswo) einfügen. Anschließend können Sie Ihren Code mit den Schaltflächen im Bearbeitungsfeld gestalten. Dies ist viel schneller, als einen Screenshot aufzunehmen und hochzuladen.
Benutzer unbekannt

Antworten:

200

Die .Syntax kann nur zum Ausführen von Shell-Skripten (durch "Sourcing") verwendet werden.

Sie müssen den javaBefehl verwenden, um eine .jarDatei auszuführen :

java -jar Minecraft.jar

Wenn Sie Java nicht installiert haben, können Sie dies beheben, indem Sie das default-jrePaket ¹ installieren . Sie können feststellen, ob Sie Java bereits installiert haben, indem Sie auf einem Terminal ausführen:

java -version 

[1]: Dadurch wird die Standard-Java-Laufzeit von openjdk installiert. Sie können openjdk-8-jreoder openjdk-7-jreoder openjdk-6-jrestattdessen verwenden, je nachdem, was auf Ihrer Ubuntu-Version verfügbar ist.

Jeremy Kerr
quelle
$ java -jar schemaSpy_5.0.0.jar *** Required parameter '-o' was not specified. ***
Karthik T
31

Linux ist perfekt in der Lage, eine fremde Binärdatei wie eine JAR-Datei auszuführen. So funktioniert zum Beispiel Wine. Führen Sie die folgenden Schritte in einer Konsole aus, um JAR-Dateien als ausführbare Datei auszuführen

sudo apt-get install binfmt-support

CD in Ihre JAR-Datei und ändern Sie sie in eine ausführbare Datei (Sie können dies auch über die Dateieigenschaften in Nautilus tun)

chmod a+rx myjar.jar

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

./myjar.jar

Hinweis: Vergewissern Sie sich, dass das Linux-Kernelmodul binfmt_misc geladen ist. Wenn Sie Ihren benutzerdefinierten kompilierten Kernel ohne dieses Modul verwenden, funktioniert die binfmt-Unterstützung nicht.

David
quelle
1
Vielen Dank! Genau das habe ich gesucht. Es ist besser als die Verwendung von java -jar, da das Host-Programm nicht wissen muss, dass es sich um ein Java-Programm handelt, und es ist besser als die Verwendung eines Skripts, da Sie sich keine Gedanken über die Übergabe von STDIN und OUT machen müssen.
srlm
2
Funktioniert nicht unter Debian 9: "Ungültige Datei (falsche magische Nummer): Exec-Format-Fehler"
Paul
16

Wenn es ein ausführbares Glas ist, dann

java -jar Minecraft.jar 

Nicht alle jar-Archives enthalten eine ausführbare Klasse, die in der Manifest-Datei als gestartet deklariert wurde. Ist dies jedoch der Fall, funktioniert dies.

Übrigens: Die meisten Programme starten Sie nicht über die Shell mit dem Punkt. Der Punkt ist eine Abkürzung für sourceund funktioniert nur in der Bash und einigen anderen Shells, um ein Skript in den Bereich der aktuellen Sitzung aufzunehmen.

Ein kompiliertes binäres xybin wird einfach mit seinem Namen gestartet, wenn es sich im Pfad befindet:

xybin 

oder mit seinem absoluten Pfad:

/home/foo/proj/test/xybin

oder mit seinem relativen Pfad:

proj/test/xybin

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

./xybin

Die Datei muss für Sie als ausführbar markiert sein (siehe: chmod). Alles oben Genannte gilt auch für Shellskripte, sie haben jedoch häufig die Erweiterung .sh, und Sie können ein Shellskript durch Aufrufen des Interpreters starten. Dann muss es nicht als ausführbar markiert werden:

 bash xy.sh

Wenn Sie keine neue Bash starten möchten, können Sie source verwenden, um Funktionsdefinitionen, Aliase und Variableneinstellungen zu verwenden.

Benutzer unbekannt
quelle
7

Sie können auch einen schönen Eintrag für die Anwendung in Unity vornehmen. Führen Sie die folgenden Befehle aus:

gedit ~/.local/share/applications/minecraft.desktop

Kopieren Sie im folgenden Fenster Folgendes, und fügen Sie es ein:

[Desktop Entry]
Type=Application
Name=Minecraft
Comment=Click here to play Minecraft
Exec=java -jar /path/to/minecraft.jar
Icon=/path/to/minecraft/icon.png
Terminal=false
Categories=Game;

Möglicherweise müssen Sie sich abmelden und wieder anmelden, um die Auswirkungen zu sehen. :) Außerdem müssen Sie im Internet nach einem gut aussehenden Minecraft-Symbol suchen, da es kein Download-Symbol bietet.

Gladen
quelle
4
  1. Öffnen Sie eine Eingabeaufforderung mit CTRL+ ALT+T
  2. Wechseln Sie in Ihr ".jar" -Dateiverzeichnis. Wenn Ihre Ubuntu-Version / -Version dies unterstützt, sollten Sie in der Lage sein, mit der rechten Maustaste auf das Verzeichnis Ihrer ".jar" -Datei zu klicken und auf "In Terminal öffnen" zu klicken.
  3. Geben Sie den folgenden Befehl ein:

    java -jar jarfilename.jar

Auf diese Weise wird Ihre ".jar" -Datei ausgeführt.

Viper
quelle
4

Installieren Sie den Jarwrapper. Danach (und durch Hinzufügen des ausführbaren Bits) können Sie die JAR-Datei durch Eingabe des JAR-Dateinamens starten.

sudo apt-get install jarwrapper

Dies funktioniert, indem binfmtdem Kernel Unterstützung für ein neues Binärformat hinzugefügt wird.

Thomas Covenant
quelle
3
 java -jar /home/username/.minecraft/launcher.jar
Antichrist
quelle
-1

wenn du dein jar mit einer bestimmten java version installieren willst, gib auch das java verzeichnis an

/scratch/app/product/Software/jdk1.8.0_112/bin/java -jar /path-to-jar/Minecraft.jar
Rohan Gala
quelle