web-dev-qa-db-fra.com

Impossible d'exécuter des fichiers .jar en double-cliquant dessus sous Windows 7

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:
Java -version in Windows CMD


J'ai essayé les méthodes suivantes, sans succès:

  • réinstaller JRE et JDK,
  • associer des fichiers .jar à C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe,
  • en utilisant assoc .jar=jarfile et ftype jarfile="C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe" -jar "%1" %* en ligne de commande,
  • création d'une nouvelle variable d'environnement système OPENDS_Java_ARGS et définition de - jar.


Informations complémentaires:

  • J'utilise Windows 7 Professionnel 64 bits (Service Pack 1) avec les dernières mises à jour installées à la fois sur mon PC et sur mon ordinateur portable.
  • L'exécution de fichiers .jar en double-cliquant dessus fonctionnait sur mon PC, mais a soudainement cessé de fonctionner il y a quelque temps. Je n'ai modifié aucun élément lié à Java.
  • J'ai la dernière version de JRE et JDK (Java 8 version 121).
  • Parmi les fichiers .jar que j'essaie d'exécuter, certains sont des applications à interface graphique et d'autres ouvrent la console système (si ce n'est déjà fait) à l'aide de 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:

  • Je ne veux pas ouvrir de fichiers .jar avec WinRAR.
  • Je ne veux pas ouvrir les fichiers .jar en exécutant Java -jar jarfile.jar dans cmd.exe.
  • Je ne cherche pas une application tierce pour exécuter les fichiers .jar.


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.

4
dinomario10

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.

2
Stigma

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!

2
bogdotro

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.

1
ePandit

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:

  1. Créez un raccourci pour le fichier .jar à ouvrir.
  2. Cliquez avec le bouton droit sur l'icône de raccourci et sélectionnez Propriétés -> onglet Raccourci
  3. 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"

  4. Puis cliquez sur ok. Double-cliquez sur le raccourci.

Il devrait maintenant ouvrir l'application.

0
Dush