L'exécution d'un fichier .jar dans la ligne de commande fonctionne bien, mais je ne parviens pas à exécuter des fichiers .jar sur mon PC en double-cliquant dessus . Ce qui est intéressant, ce sont les mêmes fichiers .jar qui s'exécutent avec succès sur mon ordinateur portable avec un double-clic.
J'ai inclus %Java_HOME\bin
et JDK_HOME\bin
dans la variable PATH
.
J'ai Java_HOME
réglé sur C:\Program Files\Java\jre1.8.0_121
.
J'ai JDK_HOME
réglé sur C:\Program Files\Java\jdk1.8.0_121
.
Pendant un certain temps, le binaire Java (TM) SE] a disparu de la liste Open with
et je ne pouvais pas l'ajouter tant que je n'avais pas remplacé la clé HKEY_CLASSES_ROOT\jar_auto_file\Shell\open\command
dans regedit.exe
par la version appropriée:
C:\Program Files\Java\jre1.8.0 _ 121 \bin\javaw.exe ""% 1 ".
Voici un instantané de Windows CMD avec Java -version
entré sur mon PC:
J'ai essayé les méthodes suivantes, sans succès:
C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe
,assoc .jar=jarfile
et ftype jarfile="C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe" -jar "%1" %*
en ligne de commande,
Informations complémentaires:
Runtime.getRuntime().exec(String[])
.
J'ai déjà essayé de résoudre ce problème avec des solutions sur les liens suivants (sans succès):
Notes:
Java -jar jarfile.jar
dans cmd.exe.
Pour l'instant, j'utilise C:\Windows\System32\cmd.exe /k "Java -jar C:\path\to\jarfile\Program.jar"
comme emplacement de raccourci pour exécuter les fichiers jar, mais je ne suis pas satisfait de cette solution car cela ouvre la console pour exécuter même les applications Swing.
J'ai posé la même question sur stackoverflow , mais on m'a fait remarquer que le superutilisateur convient mieux à ce genre de question.
J'ai rencontré quelqu'un qui a eu le même problème que vous aujourd'hui. Et d’une manière ou d’une autre, j’ai réussi à le réparer, bien que je ne sois pas tout à fait sûr de ce qui l’a résolu; Je ne peux que vous proposer la série approximative de mesures que j'ai prises.
À l'aide de regedit, j'ai constaté que les entrées de registre HKEY_CURRENT_USER et HKEY_LOCAL_MACHINE n'étaient pas concordantes. HKLM avait la configuration typique .jar
-> jarfile
, avec jarfile
pointant vers le chemin de droite. HKCU avait une association .jar
-> jar_auto_file
qui indiquait un ancien chemin non valide.
La modification de ce chemin ne l’a pas corrigé. J'ai aussi essayé de le pointer vers jarfile
, ce qui n'a pas aidé non plus. Je me suis un peu démodé avec assoc
et ftype
un peu pour voir si cela pourrait réveiller Windows; J'ai pensé que la fonctionnalité anti-piratage empêchait Windows d'écouter le chemin mis à jour. Malheureusement, cela n'a pas fait grand chose.
Donc, finalement, je viens de supprimer l’entrée jar_auto_file
. Cela me donna un bonheur partiel: Windows réalisa finalement que l'entrée dans le menu Open With
était celle avec un chemin fonctionnel. (Sélectionner le bon chemin/fichier par le passé ne resterait jamais correctement.) Malheureusement, un double-clic était toujours interrompu. Cependant, le simple fait de vous assurer que la case "Toujours ouvrir ce type de fichier avec ce programme" était cochée et que son ouverture fixait enfin l'association suffisamment bien pour que le double-clic fonctionne à nouveau.
J'ai eu le problème aussi. La solution est encore plus simple. Ajoutez l'argument -jar
manquant.
Accédez à HKEY_CLASSES_ROOT\jar_auto_file\Shell\open\command et définissez la valeur par défaut sur:
"C:\Program Files\Java\[...]\Java.exe" "-jar" "%1"
Il ne manquait que "-jar"
option.
Prendre plaisir!
J'ai essayé toutes les étapes ci-dessus pour résoudre le problème mais rien n'a fonctionné. J'avais installé JDK et JRE.
Dans mon cas, un fichier JAR a été ouvert par double-clic alors que l'autre ne l'était pas. J'ai examiné ces fichiers et la raison probable était celle qui était en cours d'ouverture. Elle avait été créée avec Java SE 6 et celle qui n'était pas ouverte avec Java SE 7. Le fichier jar problématique était en cours d'exécution via la commande Prompt (Java -jar). myfile.jar).
J'ai essayé clic droit -> Propriétés -> Changer à javaw.exe avec à la fois dans le répertoire JDK\bin et le répertoire JRE\bin.
J'ai finalement pu résoudre le problème en modifiant le chemin d'accès de javaw.exe (de JDK\bin à JRE\bin) dans l'éditeur de registre.
Allez à HKEY_CLASSES_ROOT\jarfile\Shell\open\command, la valeur était,
"C:\Program Files\Java\jdk-11.0.1\bin\javaw.exe" -jar "%1" %*
Je l'ai changé pour,
"C:\Program Files\Java\jre1.8.0_191\bin\javaw.exe" -jar "%1" %*
et cela a fonctionné. Maintenant, le fichier jar peut être ouvert par double clic.
Plusieurs JDK peuvent être installés sur votre PC. Certains programmes d'installation JDK plus anciens copient également certains fichiers Java tels que Java.exe
, javaw.exe
dans le dossier C:\Windows\System32
.
J’avais un problème similaire et j’ai cherché sur Internet une solution. Aucune des suggestions n’a été ouverte en double-cliquant sur le fichier .jar
.
Dans mon cas, plusieurs versions de JDK et JRE sont installées sur mon ordinateur. Étant donné que je suis un développeur de logiciels travaillant avec plusieurs versions différentes pour différents clients, je dois utiliser plusieurs JDK sur mon PC (Windows 10 Pro). Je ne souhaite donc pas modifier les variables système (à savoir Java_HOME
, JRE_HOME
ou PATH
), j'utilise plutôt la commande Invite pour exécuter Java dans le processus utilisateur chaque fois que je souhaitais utiliser une version différente.
Lors de l’installation de JDK, il enregistre l’association du fichier .jar
avec la dernière version installée sur le PC. Si vous cliquez avec le bouton droit sur l'icône .jar et sélectionnez Propriétés, le fichier s'ouvrira avec "Java (TM) Platform SE Binary". Si nous examinons la clé de registre: HKEY_CLASSES_ROOT\jarfile\Shell\open\command
, elle pointe vers la dernière version de JDK.
Ce n'est pas une bonne idée (parfois agaçante) de changer la clé de registre chaque fois que je veux exécuter une version de l'application à partir d'une version différente.
Donc, dans mon cas, il est impossible de simplement cliquer deux fois sur le fichier .jar
pour l'exécuter. Mais au lieu de cela, j'ai trouvé une solution de rechange.
Scénario:
Plusieurs JDK (1.7, 1.8, 9.0, 10.0, 11.0 et 12.0) sont installés sur le PC; le dernier installé était donc 12.0.
Problème
Vous voulez double-cliquer sur un exécutable .jar
développé à l’aide de JDK 1.8 et qui ne fonctionne pas
Ceci est ma solution de travail autour:
.jar
à ouvrir.Modifiez le texte dans la cible (par exemple "D:\Dev\JavaApp1.8.jar"
) To
"C:\Program Files\Java\jdk1.8.0\bin\javaw.exe
" -jar
"D:\Dev\JavaApp1.8.jar
"
Puis cliquez sur ok. Double-cliquez sur le raccourci.
Il devrait maintenant ouvrir l'application.