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

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

Existe-t-il un moyen d'exécuter un fichier avec Java dans le terminal Bash ? [J'essaie d'exécuter un fichier Minecraft.jar] [1]

[1] : http://i.stack.imgur.com/Quzbk.png J'essaie d'exécuter le fichier Minecraft.jar.

Solution

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

Vous devrez utiliser la commande java pour exécuter un fichier .jar :

java -jar Minecraft.jar

Si java n'est pas installé sur votre ordinateur, vous pouvez y remédier en installant le paquet default-jre&#185 ;. Vous pouvez vérifier si java est déjà installé en l'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 openjdk-6-jre à la place, si vous préférez - selon ce qui est disponible sur votre version d'Ubuntu.

Commentaires (1)

Linux est parfaitement capable d'exécuter un binaire étranger, comme un fichier JAR. C'est ainsi que fonctionne Wine, par exemple. Pour lancer des fichiers JAR en tant qu'exécutables, faites ce qui suit dans une console

sudo apt-get install binfmt-support

Accédez à 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 de tout autre exécutable binaire ou script shell.

./myjar.jar

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

Commentaires (2)

S'il s'agit d'un jar exécutable, alors

java -jar Minecraft.jar 

Toutes les archives jar ne contiennent pas une classe exécutable, déclarée pour être lancée dans le fichier Manifest, 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 shell bash et quelques autres shells, pour inclure un script dans la portée de la session actuelle.

Un binaire compilé xybin est simplement lancé avec son nom s'il est 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é exécutable pour vous (voir : chmod). Tout ce qui précède est également vrai pour les scripts shell, mais ils ont souvent une extension .sh, et vous pouvez lancer un script shell en invoquant l'interpréteur, et il n'a pas besoin d'être marqué comme exécutable :

 bash xy.sh

Si vous ne voulez pas démarrer un nouveau bash, vous pouvez utiliser les sources, et vous le faites, pour consommer les définitions de fonctions, les alias et les paramètres des variables.

Commentaires (0)