Quelles sont les causes de l'erreur" Impossible d'accéder à jarfile"?
Je veux exécuter mon programme sans utiliser d'EDI. J'ai créé un fichier jar et un exécutable, fichier jar. Lorsque Je double-clique sur le fichier jar exe, rien ne se passe, et quand j'essaie d'utiliser la commande dans cmd, cela me donne ceci:
Error: Unable to access jarfile <path>
J'utilise la commande: java -jar Calculator.jar
Comment j'ai créé le pot:
- Clic droit sur le dossier du projet (Calculatrice)
- Sélectionnez
- Cliquez sur le dossier Java et sélectionnez "Fichier Jar exécutable", puis sélectionnez suivant
- Configuration De Lancement: Principaux - Calculatrice
- Créer une destination d'exportation
- appuyez sur "Terminer" et le profit! Eh bien, pas vraiment.
30 answers
J'avais rencontré ce problème lorsque j'avais exécuté mon fichier Jar en tant que
java -jar TestJar
Au Lieu de
java -jar TestJar.jar
Manque l'extension .jar provoque également ce problème.
Fixe
Je viens de le placer dans un dossier différent et cela a fonctionné.
[Éventuellement Windows uniquement]
Méfiez-vous des espaces dans le chemin, même lorsque votre jar est dans le répertoire de travail actuel. Par exemple, pour moi, cela échouait:
java -jar myjar.jar
J'ai pu résoudre ce problème en donnant le chemin complet et cité vers le pot:
java -jar "%~dp0\myjar.jar"
Le crédit va à cette réponse pour m'avoir mis sur le bon chemin....
J'ai eu ce problème sous CygWin dans Windows. J'ai lu ailleurs que Java ne comprend pas les chemins CygWin (/cygdrive/c/some/dir
au lieu de C:\some\dir
) - j'ai donc utilisé un chemin relatif à la place: ../../some/dir/sbt-launch.jar
.
J'ai eu le même problème en essayant de lancer le fichier jar. Le chemin contenait un espace, donc j'ai dû placer des citations autour. Au lieu de:
java -jar C:\Path to File\myJar.jar
J'ai dû écrire
java -jar "C:\Path to File\myJar.jar"
Vient de rencontrer le même problème en essayant de faire une mauvaise USB...
J'ai essayé d'exécuter cette commande en admin cmd
java -jar c:\fw\ducky\duckencode.jar -I c:\fw\ducky\HelloWorld.txt -o c:\fw\ducky\inject.bin
Mais a obtenu cette erreur:
Error: unable to access jarfile c:\fw\ducky\duckencode.jar
Solution
1ère étape -
Cliquez avec le bouton droit sur le fichier jarfile en question. Cliquez sur propriétés. Cliquez sur l'onglet Débloquer dans le coin inférieur droit. Le fichier a été bloqué, car il a été téléchargé et non créé sur mon PC.
2ème étape
Dans le cmd, j'ai changé le répertoire en où se trouve le fichier jar.
cd C:\fw\ducky\
, Puis j'ai tapé dir
et vu que le fichier a été nommé duckencode.jar.jar
Donc, dans cmd, j'ai changé la commande d'origine pour référencer le fichier avec .jar.jar
java -jar c:\fw\ducky\duckencode.jar.jar -I c:\fw\ducky\HelloWorld.txt -o c:\fw\ducky\inject.bin
Cette commande exécutée sans messages d'erreur et l'injection.bin j'essayais de créer était maintenant situé dans le répertoire.
J'espère que cela aide.
J'ai eu un problème similaire et j'ai même essayé d'exécuter mon CMD avec des droits d'administrateur, mais cela n'a pas résolu le problème.
La chose de base est de s'assurer de changer le Répertoiredans cmd au répertoire courant où se trouve votre fichier jar.
Procédez comme suit:
-
Copiez le fichier jar sur le bureau.
-
Exécuter CMD
-
Type de commande
cd desktop
-
, Puis tapez
java -jar filename.jar
Ceci devrait fonctionner.
Edit : À partir de JDK-11 (JEP 330 : Lancer des Programmes de Code Source à Fichier unique)
Depuis Java 11, l'outil de ligne de commande java est capable d'exécuter directement un code source à fichier unique. par exemple
java filename.java
Si vous utilisez OSX, les fichiers téléchargés sont marqués avec un indicateur de sécurité qui empêche les applications non signées de s'exécuter.
Pour vérifier cela, vous pouvez afficher les attributs étendus sur le fichier
$ ls -l@
-rw-r--r--@ 1 dave staff 17663235 13 Oct 11:08 server-0.28.2-java8.jar
com.apple.metadata:kMDItemWhereFroms 619
com.apple.quarantine 68
Vous pouvez ensuite effacer les attributs avec
xattr -c file.jar
Cela a fonctionné pour moi.
cd /path/to/the/jar/
java -jar ./Calculator.jar
Cela peut également se produire si vous ne fournissez pas correctement votre liste de paramètres. Voici ce que je faisais:
java -jar [email protected] testing_subject file.txt test_send_emails.jar
Au Lieu de la version correcte:
java -jar test_send_emails.jar [email protected] testing_subject file.txt
Parfois, cela se produit lorsque vous essayez de (exécuter ou créer) un .fichier jar sous le dossier / libs par clic droit dans Android studio. vous pouvez sélectionner le menu déroulant en haut de android stuio et le changer en app. Cela fonctionnera
Pour moi, cela arrive si vous utilisez des caractères polonais natifs dans foldername qui se trouve dans le CHEMIN. Alors peut-être que l'utilisation de caractères atypiques était la raison du problème.
Mon problème particulier a été causé parce que je travaillais avec des répertoires qui impliquaient des liens symboliques (raccourcis). Par conséquent, essayer java -jar ../../myJar.jar
n'a pas fonctionné parce que je n'étais pas là où je pensais être.
Sans tenir compte des chemins de fichiers relatifs, cela a été corrigé.
Dans mon cas, le nom de fichier suggéré à utiliser était jarFile*.jar
dans la ligne de commande. Le fichier dans le dossier était jarFile-1.2.3.jar
. J'ai donc renommé le fichier en jarFile
. Ensuite, j'ai utilisé jarFile.jar
au lieu de jarFile*.jar
et le problème a été résolu
Cela peut se produire sur une machine Windows lorsque vous avez des espaces dans les noms du dossier. La solution serait d'entrer dans le chemin entre"". Par exemple:
java -jar c:\my folder\x.jar -->
java -jar "c:\my folder\x.jar"
Pour éviter tout problème d'autorisation, essayez de l'exécuter en tant qu'administrateur. Cela a fonctionné pour moi sur Win10.
Je sais que ce fil date d'il y a des années et que le problème a également été résolu. Mais j'espère que cela aiderait quelqu'un d'autre à l'avenir car j'ai rencontré des problèmes similaires pendant que j'essayais d'installer Oracle WebLogic 12c et Oracle OFR dans lequel son installateur est au format .jar
. Pour le mien, il n'a pas encapsulé le répertoire JDK entre guillemets ou simplement une faute de frappe.
Exécuter Command Prompt
en tant qu'administrateur et exécutez la commande dans ce format. Vérifiez la phrase s'il y a une faute de frappe.
"C:\Program Files\Java\jdk1.xxxxx\bin\java" -jar C:\Users\xxx\Downloads\xxx.jar
S'il montre quelque chose comme JRE 1.xxx is not a valid JDK Java Home
, assurez-vous que les variables système pour JAVA_HOME
dans les variables d'environnement pointent vers le répertoire JDK correct. JDK 1.8 ou supérieur est recommandé (2018).
Un thread utile ici, vous pouvez le référer: Pourquoi il montre votre JDK c:program files\java\jre7 n'est pas un JDK valide lors de l'installation de weblogic server?
J'ai eu un problème similaire où TextMate ou quelque chose a remplacé les guillemets doubles par les guillemets doubles unicode.
Changer mon SELENIUM_SERVER_JAR
des guillemets doubles unicode aux guillemets doubles réguliers et cela a résolu mon problème.
C'est parce que vous recherchez le fichier dans le mauvais chemin 1. recherchez le chemin du dossier dans lequel vous avez placé le fichier 2. changer le répertoire cd dans cmd utiliser le bon chemin
J'utilise NetBeans et j'ai eu le même problème. Après avoir exécuté build et clean project, mon programme était exécutable. La documentation Java indique que la commande build/clean sert essentiellement à reconstruire le projet à partir de zéro et à supprimer toutes les compilations passées. J'espère que cette aide. Aussi, j'avais lu la documentation. Oracle a NetBeans et Java learning trails. Très utile. Bonne chance!
Peut-être avez-vous spécifié la mauvaise version de votre jar.
J'ai finalement collé mon fichier jar dans le même dossier que mon JDK, donc je n'ai pas eu à inclure les chemins. J'ai également dû ouvrir l'invite de commande en tant qu'administrateur.
- Faites un clic droit sur l'invite de commande et"Exécuter en tant qu'administrateur"
- Accédez au répertoire dans lequel vous avez enregistré votre jdk
- Dans l'invite de commande tapez:
java.exe -jar <jar file name>.jar
Conserver le fichier dans le même répertoire où vous l'extraire. Ce qui a fonctionné pour moi.
Pour moi, cela se produit parce que je l'exécute avec la version java par défaut (7) et non avec la version java compilée (8) utilisée pour créer ce pot.
J'ai Donc utilisé:
%Java8_64%\bin\java -jar myjar.jar
Au lieu de java 7 version:
java -jar myjar.jar
Avez-vous essayé de l'exécuter sous privoleges administrateur? ce qui signifie, exécuter la commande dans "Exécuter en tant que", puis sélectionner administrateur avec les informations d'identification admin appropriées
A travaillé pour moi
J'essayais ceci:
Après avoir donné au fichier des privilèges de lecture, d'écriture, d'exécution:
chmod 777 java-repl.jar
alias jr="java -jar $HOME/Dev/java-repl/java-repl.jar"
Impossible d'accéder à bla bla..., c'était sur Mac OS cependant
J'ai Donc essayé ceci:
alias jr="cd $HOME/Dev/java-repl/ && java -jar java-repl.jar"
Cela n'a pas fonctionné "Impossible d'accéder à jarfile"
"C:\Program Files\java\jdk-13+33-jre\bin\javaw.exe" -jar "C:\Program Files\Maxim Integrated Products\1-Wire Drivers x64\ OneWireViewer.jar"
Cela fonctionne
"C:\Program Files\java\jdk-13+33-jre\bin\javaw.exe" -jar "C:\Program Files\Maxim Integrated Products\1-Wire Drivers x64\OneWireViewer.jar"
La différence est l'espace unique devant OneWireViewer.jar ne supporte pas qu'il soit entouré de guillemets et a même d'autres espaces.
Si vous êtes sur WSL, et que vous suivez un guide qui dit, dit ceci:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
Vous devez en fait spécifier le chemin complet, même si vous l'avez fourni dans la partie java.library.path
.
java -Djava.library.path=/mnt/c/dynamodb_local/DynamoDBLocal_lib -jar /mnt/c/dynamodb_local/DynamoDBLocal.jar -sharedDb
C'est un problème d'autorisation, voyez si le répertoire est sous votre utilisateur. C'est pourquoi travaille dans un autre dossier!
Renommez le fichier jar et essayez
Explication : oui, je sais qu'il y a encore beaucoup de réponses, je veux ajouter un point ici auquel j'ai fait face.
J'ai construit le pot et je l'ai déplacé dans le serveur où je déployer (C'est le processus normal) ici, le nom du fichier que j'ai déplacé existait déjà dans le serveur, ici le fichier remplacera évidemment correctement. Dans ce cas, j'ai fait face à ce problème. peut-être qu'au moment de la substitution, il peut y avoir un problème de copie d'autorisation.
J'espère que cela aidera quelqu'un.