Comment executer un fichier .jar "bloqué" sous Linux

Fermé
Lsmyg - Modifié le 7 févr. 2022 à 15:57
mamiemando Messages postés 33268 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 septembre 2024 - 8 févr. 2022 à 11:50
Bonjour,

J'ai essayé de plusieurs façons d'exécuter un fichier
.jar
, normalement exécutable, mais visiblement, il y a un problème.
Voici ce que j'ai testé notamment:

java -jar forge-1.18.1-39.0.20. jar.
Error: Unable to access jarfile forge-1.18.1-39.0.20.


Pouvez-vous m'indiquer que faire ou quelle application installer?
Merci

Configuration: Linux / Firefox 96.0
A voir également:

2 réponses

mamiemando Messages postés 33268 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 septembre 2024 7 780
Modifié le 7 févr. 2022 à 16:04
Bonjour,

Par rapport aux remarques de jns55:
  • Un fichier jar n'a pas de raison d'avoir de droits en exécution, tu peux donc ignorer cette piste ;
  • Il ne faut pas lancer un fichier
    .jar
    en root ou via
    sudo
    sauf s'il a de bonnes raisons de les demander, par exemple pour installer des fichiers en dehors de ton home (mais à ce stade, je ne pense pas que ce soit le cas).


Pour lancer un fichier il faut qu'il ait les droits en exécution. Ça n'est généralement pas le cas d'un fichier
jar
, qui est lu par
java
quand on exécute
java -jar fichier.jar
.

Ensuite, pour que
java
sache quel fichier
.jar
tu veux lancer, il faut soit passer à java le chemin absolu vers le fichier
.jar
, soit passer le chemin relatif qui permet de le retrouver. Note que la touche tabulation permet de compléter pour toi le chemin que tu es en train de taper (donc par exemple, si tu tapes /h tabulation cela devrait écrire /home/, puis si tu rajoutes f tabulation cela devrait taper /home/famille. Si ça ne va pas aussi loin que tu veux, appuie deux fois sur tabulation pour voir entre quoi et quoi il hésite et ajoute quelques lettres pour le débloquer). Avec cette méthode, tu seras certain(e) de taper des chemins corrects.

Méthode 1 : chemin absolu

java -jar /home/famille/.minecraft/resourcepacks/forge-1.18.1-39.0.20-installer.jar


Méthode 2 : chemin relatif

cd /home/famille/.minecraft/resourcepacks
java -jar forge-1.18.1-39.0.20-installer.jar


Bonne chance
1
Merci beaucoup ça à bien fonctionné.
En fait, Java c'est ce qui permet dans tous les cas d'ouvrir un fichier .jar?
Est-ce que vous pouvez m'expliquer comment ça marche?
Merci
0
mamiemando Messages postés 33268 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 septembre 2024 7 780 > Lsmyg
8 févr. 2022 à 11:50
En fait, Java c'est ce qui permet dans tous les cas d'ouvrir un fichier .jar?

Tout à fait : jar = java archive.

Est-ce que vous pouvez m'expliquer comment ça marche?

Tu as un aperçu ici (la version anglaise est plus complète). Pour faire simple, c'est une archive zip dans laquelle sont rassemblées les classes.

Généralement un projet écrit en java implique de nombreuses classes (par exemple dans un jeu vidéo, on pourrait imaginer qu'il y ait une classe Personnage, Monstre, Niveau, etc..). Le développeur les écrit en langage java, et chaque classe correspond à un fichier
.java
.

Chaque classe est ensuite compilée en bytecode grâce à un compilateur java, typiquement
javac
(potentiellement au travers d'un logiciel comme Eclipse). Pour chaque fichier .java, on obtient un fichier
.class
compilé en bytecode.

À ce stade le programme est d'ores et déjà exécutable. En effet exécuter un programme en java revient à lancer le bytecode adéquat au travers de la JVM (la machine virtuelle java). Cela se fait en appelant le bon fichier .class via l'exécutable
java
.

Le problème, c'est qu'un projet implique souvent un grand nombre de classe, et on n'a pas envie que l'utilisateur final soit confronté à ces nombreux fichiers, à savoir lequel il doit exécuter au travers de la JVM, etc. Bref c'est peu pratique, et c'est pourquoi avant de redistribuer un programme en java, on les rassemble dans une archive qui va toutes les rassembler et indiquer à java où est le point de départ. Et cette archive, c'est le fameux
.jar
.

Le fichier
.jar
offre d'autres avantages. Il peut stocker les modules dont dépend le programme java (ce qui évite ainsi à l'utilisateur final de devoir les installer par lui-même) et être signé (afin que le système d'exploitation de l'utilisateur puisse contrôler que l'archive a été produite par un éditeur de confiance).

Bonne chance
0
Bonjour,

Commence par te placer dans le répertoire qui contient ton fichier
.jar

cd /home/.../
java -jar forge-1.18.1-39.0.20. jar
0
Bonjour voici ce qu'il m'indique:

/home/famille/.minecraft/resourcepacks/forge-1.18.1-39.0.20-installer.jar
bash: /home/famille/.minecraft/resourcepacks/forge-1.18.1-39.0.20-installer.jar: Permission non accordée


Visiblement je n'ai pas la permission ou le statut permettant d'exécuter ce fichier. Que puis-je faire pour y remédier?
Merci
0
Depuis ton gestionnaire de fichiers, fais un clic droit sur le nom du fichier, choisis "Propriétés" et regarde dans l'onglet "permissions". Tu verras qui est le propriétaire du fichier, les permissions qui sont accordées et que tu peux modifier en cochant des cases. Si le fichier appartient à root, il faut ouvrir le gestionnaire de fichiers en tant que root pour pouvoir les modifier (ou faire cette modification en ligne de commande dans un terminal root).

Ou alors lance-le dans un terminal root : possible que si c'est un programme d'installation il ait besoin des privilèges root.
(soit sudo su soit su suivant ta distro)
0
brucine Messages postés 16741 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 19 septembre 2024 2 367 > jns55
7 févr. 2022 à 10:54
Bonjour,

Je ne comprends pas grand-chose à Linux.

Ce n'est pas (Forge) un programme indépendant mais un bidouillage pour Minecraft qui s'installe apparemment comme suit dans Ubuntu:

https://www.arubacloud.com/tutorial/how-to-install-mods-on-a-minecraft-server-with-ubuntu-20-04.aspx
0