Comment puis-je exécuter un fichier .jar à partir du terminal

124

Je sais que pour exécuter un fichier, j'utilise la .commande, puis le nom du fichier avec un espace entre eux. Mais j'essaye d'exécuter un fichier .jar en utilisant le .et cela ne fonctionne pas. Je suis allé dans les propriétés et l'ai marqué comme exécutable et l'ai fait fonctionner avec Java.

Est-il possible d'exécuter un fichier avec Java dans le terminal Bash ? J'essaie d'exécuter un fichier Minecraft.jar

J'essaie d'exécuter le fichier Minecraft.jar.

jaorizabal
la source
4
Bonjour et bienvenue, jaorizabal. J'ai légèrement corrigé votre question. Peut-être pouvez-vous installer un correcteur orthographique pour votre navigateur afin d’améliorer vous-même la question suivante. Autre astuce: pour les problèmes de texte, vous pouvez marquer du texte avec votre souris dans le terminal, puis le coller dans le champ de saisie de votre navigateur (et ailleurs) avec un clic du milieu sur la molette de la souris. Ensuite, vous pouvez mettre en forme votre code avec les boutons dans le champ d'édition. C'est beaucoup plus rapide que de prendre une capture d'écran et de la télécharger.
utilisateur inconnu

Réponses:

200

La .syntaxe ne peut être utilisée que pour exécuter (par "sourcing") des scripts shell.

Vous devrez utiliser la javacommande pour exécuter un .jarfichier:

java -jar Minecraft.jar

Si vous n'avez pas installé Java, vous pouvez résoudre ce problème en installant le default-jrepaquet ¹. Vous pouvez voir si vous avez déjà installé Java en exécutant dans un terminal:

java -version 

[1]: Ceci installera le runtime Java openjdk par défaut. Vous pouvez utiliser openjdk-8-jre, ou openjdk-7-jre, ou à la openjdk-6-jreplace, si vous préférez - celle qui est disponible sur votre version d'Ubuntu.

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

Linux est parfaitement capable d’exécuter un binaire étranger, comme un fichier JAR. Voici comment fonctionne Wine, par exemple. Pour exécuter les fichiers JAR en tant qu'exécutable, procédez comme suit dans une console

sudo apt-get install binfmt-support

Cd dans votre fichier JAR et changez-le en exécutable (vous pouvez également le faire via les propriétés du fichier dans Nautilus)

chmod a+rx myjar.jar

Exécutez votre fichier jar comme s'il s'agissait d'un autre script exécutable ou shell

./myjar.jar

Remarque: Assurez-vous que le module de noyau linux binfmt_misc est chargé. Si vous utilisez votre noyau compilé personnalisé sans ce module, le support binfmt ne fonctionnera pas.

David
la source
1
Merci! Ceci est exactement ce que je cherchais. C'est mieux que d'utiliser java -jar, car il ne nécessite pas que le programme hôte sache qu'il s'agit d'un programme java, et c'est mieux que d'utiliser un script, car vous n'avez pas à vous soucier de passer par STDIN et OUT.
srlm
2
Ne fonctionne pas sur Debian 9: "fichier invalide (mauvais nombre magique): erreur de format Exec"
Paul,
16

Si c'est un jar exécutable, alors

java -jar Minecraft.jar 

Toutes les archives-jar ne contiennent pas une classe exécutable, déclarée comme étant démarrée dans le fichier manifeste, mais si c'est le cas, cela fonctionnera.

Btw .: Vous ne démarrez pas la plupart des programmes à partir du shell avec le point. Le point est un raccourci pour source, et il ne fonctionne que dans le bash et quelques autres shells, pour inclure un script dans l'étendue de la session en cours.

Un xybin binaire compilé est simplement démarré avec son nom s'il se trouve dans le chemin:

xybin 

ou, avec son chemin absolu:

/home/foo/proj/test/xybin

ou avec son chemin relatif:

proj/test/xybin

ou si vous vous trouvez dans le répertoire du fichier, avec ce chemin relatif:

./xybin

Le fichier doit être marqué comme exécutable pour vous (voir: chmod). Tout ce qui précède est vrai pour les scripts de shell également, mais ils ont souvent une extension .sh et vous pouvez démarrer un script de shell en appelant l'interpréteur. Il n'est alors pas nécessaire qu'il soit marqué comme exécutable:

 bash xy.sh

Si vous ne voulez pas démarrer un nouveau bash, vous pouvez utiliser source et utiliser des définitions de fonction, des alias et des paramètres de variable.

Utilisateur inconnu
la source
7

Vous pourriez aussi bien vouloir faire une belle entrée pour l'application dans Unity. exécuter les commandes suivantes:

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

Dans la fenêtre qui apparaît, copiez et collez ce qui suit:

[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;

Vous devrez peut-être vous déconnecter et revenir pour voir les effets. :) En outre, vous devez rechercher sur Internet une jolie icône Minecraft, car ils ne fournissent pas le téléchargement.

Gladen
la source
4
  1. Ouvrez une invite de commande avec CTRL+ ALT+T
  2. Allez dans votre répertoire de fichiers ".jar". Si votre version / saveur Ubuntu le prend en charge, vous devriez pouvoir cliquer avec le bouton droit de la souris sur le répertoire de votre fichier ".jar" et cliquer sur "Ouvrir dans un terminal".
  3. Tapez la commande suivante:

    java -jar jarfilename.jar

De cette façon, votre fichier ".jar" sera exécuté.

vipère
la source
4

Installez jarwrapper. Après cela (et en ajoutant le bit exécutable), vous pouvez démarrer le fichier jar simplement en entrant le nom du fichier jar.

sudo apt-get install jarwrapper

Cela fonctionne en utilisant binfmtpour ajouter la prise en charge d’un nouveau format binaire au noyau.

Thomas Covenant
la source
3
 java -jar /home/username/.minecraft/launcher.jar
Antéchrist
la source
-1

si vous voulez installer votre jar avec une version spécifique de Java Indiquez également le répertoire Java

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