web-dev-qa-db-fra.com

Exécution du fichier JAR sous Windows

J'ai un fichier JAR nommé helloworld.jar . Pour l'exécuter, j'exécute la commande suivante dans une fenêtre de ligne de commande:

Java -jar helloworld.jar

Cela fonctionne bien, mais comment puis-je l'exécuter avec un double-clic à la place? Dois-je installer un logiciel?

186
DonX

La voie la plus facile est probablement la mise à niveau ou la réinstallation de JRE (Java Runtime Environment).

Ou ca:

  • Ouvrez l'explorateur Windows, à partir de Outils, sélectionnez "Options des dossiers ...".
  • Cliquez sur l'onglet Types de fichiers, faites défiler vers le bas et sélectionnez le type de fichier JAR.
  • Appuyez sur le bouton Advanced.
  • Dans la boîte de dialogue Modifier le type de fichier, sélectionnez Ouvrir dans la zone Actions et cliquez sur Modifier ...
  • Appuyez sur le bouton Parcourir et naviguez jusqu'à l'emplacement de l'interpréteur Java javaw.exe.
  • Dans le champ Application utilisé pour exécuter l'action, doit afficher quelque chose de similaire à C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar "%1" % (Remarque: la partie commençant par 'javaw' doit être exactement comme cela; l'autre partie du nom du chemin peut varier en fonction de la version de Java que vous utilisez. avec) puis appuyez sur les boutons OK jusqu'à ce que toutes les boîtes de dialogue soient fermées.

Ce qui a été volé à partir d'ici: http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html

107
Brian Kelly

Sous Windows Vista ou Windows 7, l'éditeur d'association de fichiers manual a été supprimé.

Le moyen le plus simple consiste à exécuter Jarfix , un outil gratuit mais minuscule mais puissant. Il suffit de l'exécuter et vos applications Java sont de retour ... double-cliquables.

76
Hendy Irawan

Si vous avez besoin de distribuer votre fichier .jar et de le rendre exécutable sur les ordinateurs Windows d'autres personnes, vous pouvez créer un fichier .bat simple comme celui-ci dans la commande Invite:

Java -jar MyJavaTool.jar

et placez le fichier .bat dans le même répertoire que votre fichier .jar.

44
Demorf

Si vous avez un fichier jar appelé Example.jar, suivez ces règles:

  1. Ouvrez un notepad.exe
  2. Écrivez: Java -jar Example.jar
  3. Enregistrez-le avec l'extension .bat
  4. Copiez-le dans le répertoire qui contient le fichier .jar
  5. Double-cliquez dessus pour exécuter votre fichier .jar
21
Pusu

Un effet secondaire intéressant de cette situation pose un problème lors du démarrage des fichiers jar exécutables dans la commande Invite.

Si vous essayez (dans une invite de commande)

paramètre jarfile.jar

Pas de joie, car cela se traduit comme suit (cela ne fonctionne pas):

javaw.exe -jar paramètre jarfile.jar

cependant, la commande suivante fonctionne:

Paramètre jarfile.jar de Java.exe

Si vous modifiez l'association dans le gestionnaire de fichiers comme décrit ci-dessus, procédez comme suit:

"C:\Program Files\Java\j2re1.4.2_04\bin\Java.exe" -jar "% 1"% *

vous pouvez alors taper:

paramètre jarfile.jar

dans l'invite de commande et cela va maintenant fonctionner! EDIT: (Cependant, vous obtenez alors une fenêtre de console noire lorsque vous exécutez une application Java basée sur un formulaire (non console), ce n'est donc pas une solution idéale)

Si vous exécutez ces fichiers jar en double-cliquant dessus dans Windows, aucun paramètre ne sera transmis. Votre code Java doit donc gérer l'exception de débordement de pile et inclure une fonction "appuyer sur une touche" à la fin, sinon la fenêtre disparaîtra.

Pour passer un paramètre dans Windows, vous devez créer un raccourci vers le fichier jar, qui inclut le paramètre dans la ligne cible (clic droit sur le raccourci et sélectionner propriétés). Vous ne pouvez pas ajouter de paramètres à l'icône du fichier jar elle-même. façon.

Il n’existe pas de solution unique et cohérente ici, mais vous auriez le même problème avec toute autre application console. 

Il existe une application Windows gratuite appelée "chauve-souris pour exe" que vous pouvez utiliser pour créer un fichier exe à partir d'un fichier .bat avec la ligne de commande appropriée. vous pouvez également incorporer le fichier jar dans le fichier exe avec cette application et le faire nettoyer une fois qu'il est terminé, ce qui en fait une solution plus élégante.

15
Bob

Premier chemin défini sur cmd (invite de commande):

set path="C:\Program Files\Java\jre6\bin"

puis tapez

Java -jar yourProgramname.jar 
11
suraj

Sous Windows XP * il vous faut juste 2 Shell commandes:

   C:\>ftype myjarfile="C:\JRE1.6\bin\javaw.exe" -jar "%1" %* 
   C:\>assoc .jar=myjarfile  

utilisez évidemment le chemin correct pour le JRE et le nom de votre choix au lieu de myjarfile.

Pour simplement vérifier les paramètres actuels:

   C:\>assoc .jar  
   C:\>ftype jarfile  

cette fois en utilisant la valeur renvoyée par la première commande, le cas échéant, au lieu de jarfile.

* non testé avec Windows 7

8
Carlos Heuberger

Outre toutes les autres suggestions, vous devez également prendre en compte une autre chose. Est-ce que votre helloworld.jar est un programme de console? Si tel est le cas, je ne pense pas que vous pourrez en faire un fichier jar double-cliquable. Les programmes de console utilisent la fenêtre standard du shell cmd.exe pour leur entrée et leur sortie. Le jar "launcher" est généralement lié à javaw.exe qui ne crée pas de fenêtre de commande-shell.

6
Stephen Gilbert

Il y a moyen de ne pas obliger l'utilisateur à faire des changements sur son PC. Runtime.getRuntime.exec () nous permet de démarrer cmd.exe et d'exécuter des commandes à l'intérieur de celui-ci. Il est donc possible que le programme Java s'exécute dans l'invite de commande lorsque l'utilisateur clique sur le fichier .jar.

public static void main(String[] args) throws IOException {
    if(args.length == 0) {
        Process p = Runtime.getRuntime().exec("cmd.exe /c start Java -jar " + (new File(NameOfClass.class.getProtectionDomain().getCodeSource().getLocation().getPath())).getAbsolutePath() + " cmd");
    } else {
        //code to be executed
    }
}
6
dario111cro

J'utilise Windows 7 x64 et je n'ai pas pu utiliser ces correctifs.

Celui-ci a fonctionné pour moi après tout:

http://thepanz.netsons.org/post/windows7-jar-file-association-broken-with-nokia-ovi

Vous pouvez télécharger une archive contenant un fichier .bat à exécuter, mais vérifiez le chemin du fichier javaw.exe !!!!

5
lawid

Vous voulez vérifier un certain nombre de choses; S'il s'agit de votre propre fichier JAR, assurez-vous d'avoir défini une classe principale dans le manifeste. Comme nous savons que vous pouvez l'exécuter à partir de la ligne de commande, vous devez également créer un raccourci Windows et modifier les propriétés (vous devrez faire le tour, je n'ai pas de machine Windows à regarder) pour la commande qu'il exécute à l'ouverture est la commande Java -jar que vous avez mentionnée. 

L'autre chose: si quelque chose n'est pas confus, cela devrait quand même fonctionner; vérifiez et assurez-vous que Java est associé à l'extension .jar.

3
Charlie Martin

Dans regedit, ouvrez HKEY_CLASSES_ROOT\Applications\Java.exe\Shell\open\command

Double-cliquez sur défaut à gauche et ajoutez -jar entre le chemin Java.exe et l'argument "%1".

2
grwww

J'ai eu le même problème dans Windows 10. Je l'ai corrigé en utilisant un clic droit sur le " helloworld.jar " et allez dans propriétés et cliquez sur changer bouton sous " Ouvre avec: "et sélectionnez" Recherchez une autre application sur ce PC ". Dans la boîte de dialogue " Ouvrir avec ... ", accédez à l'emplacement du dossier Java sur votre PC, ouvrez le dossier jdk correspondant, puis ouvrez le dossier bin et sélectionnez " javaw.exe " De là. Ensuite, la prochaine fois que votre " helloworld.jar " s'ouvrira normalement.

Exemple d’emplacement Java habituel: " C:\Program Files (x86)\Java\jdk1.8.0_111\bin ".

1
Samintha Kaveesh

Malheureusement, ce n’est pas si facile, car Microsoft a supprimé la boîte de dialogue relative à l’association de fichiers avancée dans les dernières éditions de Windows. - Avec les nouvelles versions de Windows, vous ne pouvez spécifier que l'application à utiliser pour ouvrir le fichier .jar.

La correction de l’ouverture du fichier .jar sous Windows nécessite deux étapes.

  1. Ouvrez le Panneau de configuration et choisissez "Programmes par défaut -> Définir les associations". Recherchez l’extension .jar ( Fichier JAR exécutable ) et choisissez Java comme programme par défaut pour ouvrir cette extension. Il sera probablement répertorié comme " Java Platform (SE) ". Une alternative plus rapide est peut-être un simple clic droit sur un fichier .jar, puis modifiez le programme associé en cliquant sur le bouton "Modifier ...".

  2. Maintenant, ouvrez le regedit, et ouvrez la clé HKEY_CLASSES_ROOT\jarfile\Shell\open\command. Heureusement pour nous, nous pouvons y spécifier des paramètres pour la valeur (Default). Sur mon système Windows, cela ressemble à: C:\app\32\jre7\bin\javaw.exe" -jar "%1" %* mais dans la plupart des cas, il s'agit de la chaîne suivante: C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

REMARQUES: 

  • N'utilisez pas Java.exe car cela ouvrira la fenêtre du shell.
  • L'outil jarfix mentionné dans ce fil de discussion ne fait probablement rien de plus que la modification du registre pour vous. Je préfère la méthode de changement de registre manuelle, car cela implique que l'administrateur système puisse "Transférer" le changement de registre sur tous les postes de travail du réseau.
1
DejanLekic

PreScript : Si votre invite apparaît et disparaît immédiatement, c'est parce que votre programme est exécuté et se ferme automatiquement. Essayez de mettre un scanner à la fin pour terminer et cela gardera votre invite en attente de saisie avant de terminer. (Ou utilisez le délai peut-être)

Était dans la même situation, où exécuter .jar à partir de cmd fonctionnait bien, mais un double-clic ne fait rien.

Solution: Ouvrez n’importe quel éditeur de texte et écrivez la ligne de commande suivante: Java -jar Example.jarSave le fichier en tant que fichier .bat . Exécutez ce fichier bat pour obtenir le résultat souhaité.

En prenant un pas en avant, vous pouvez convertir ce fichier bat en fichier exe à l'aide d'un simple outil graphique, tel que Bat To Exe Converter.

Maintenant, vous pouvez partager votre .jar en tant que distribution dans un fichier .exe que tout le monde peut utiliser, assurez-vous simplement de conserver tous les fichiers ensemble. (En particulier, la cause des fichiers .jar et .bat .bat n’est qu’une invite de commande).

Je suis assez nouveau dans le développement et j'apprends beaucoup. S'il vous plaît excuser pour les erreurs si commis. Les suggestions sont les bienvenues.

1
Manthan_Admane

Une autre façon d’exécuter des fichiers jar avec un clic/double-clic consiste à ajouter le nom de fichier «-jar» au nom du fichier Par exemple, vous renommeriez le fichierMyJar.jaren-jar MyJar.jar.

Vous devez bien sûr avoir les fichiers .class associés à Java.exe. Cela peut ne pas fonctionner dans tous les cas, mais cela a fonctionné la plupart du temps pour moi.

1
user4343596

Si vous devez exécuter le fichier jar en double-cliquant dessus, vous devez le créer en tant que "Runnable JAR". vous pouvez le faire simplement avec votre IDE.

Si vous utilisez Eclipse, procédez comme suit:

    To create a new runnable JAR file in the workbench:

1.From the menu bar's File menu, select Export.
2.Expand the Java node and select Runnable JAR file. Click Next.
3.In the  Opens the Runnable JAR export wizard Runnable JAR File Specification page, select a 'Java Application' launch configuration to use to create a runnable JAR.
4.In the Export destination field, either type or click Browse to select a location for the JAR file.
5.Select an appropriate library handling strategy.
Optionally, you can also create an ANT script to quickly regenerate a previously created runnable JAR file.

plus d'informations peuvent être trouvées sur l'aide Eclipse Page: LINK

0
Nomesh DeSilva

Il existe de nombreuses méthodes pour exécuter le fichier .jar sous Windows. L'un d'eux utilise la commande Invite. 

Pas :

  1. Ouvrir l'invite de commande (Exécuter en tant qu'administrateur)
  2. Maintenant, écrivez la commande "cd \" pour le répertoire racine
  3. Tapez "Java jar nomfichier.jar" Remarque: vous pouvez également utiliser des applications tierces telles que WinRAR, jarfix, etc.
0
irisrei08

En fait, j'ai aussi fait face à ce problème, je me suis débrouillé en faisant un coureur .bat pour mon fichier jar

voici le code:

class FileHandler{
   public static File create_CMD_Rnner(){
      int exitCode = -1625348952;
      try{
           File runner = new File(Main.batName);
           PrintWriter printer = new PrintWriter(runner);
           printer.println("@echo off");
           printer.println("title " + Main.applicationTitle);
           printer.println("Java -jar " + Main.jarName + " " + Main.startCode );
           printer.println("PAUSE");
           printer.flush();
           printer.close();
           return runner;
       }catch(Exception e){
           System.err.println("Coudln't create a runner bat \n exit code: " + exitCode);
           System.exit(exitCode);
           return null;
       }
   }
}



Dans votre classe d’applications principale, procédez comme suit:

public class Main{
    static String jarName = "application.jar";
    static String applicationTitle = "Java Application";
    static String startCode = "javaIsTheBest";
    static String batName = "_.bat";


    public static void main(String args[]) throws Exception{
        if(args.length == 0 || !args[0].equals(startCode)) {
            Desktop.getDesktop().open(FilesHandler.create_CMD_Rnner());
            System.exit(0);
        }else{
            //just in case you wanted to hide the bat
            deleteRunner();
            // Congratulations now you are running in a cmd window ... do whatever you want
            //......
            System.out.println("i Am Running in CMD");
            //......
            Thread.sleep(84600);
        }
    }


    public static void deleteRunner(){
        File batRunner = new File(batName);
        if(batRunner.exists()) batRunner.delete();
    }
}


Veuillez noter que

  1. ce code (mon code) ne fonctionne qu'avec un fichier jar, pas un fichier de classe.

  2. le fichier jar doit avoir le même nom que la chaîne "jarName" est la classe principale

0
ZOLDIK

Pas:

1.) recherchez Java SE Runtime Environment sur Google: https://www.google.com/search?q=Java+SE+Runtime+Environment

2.) installez la version appropriée sur votre ordinateur

0
iorgu

Si vous utilisez Eclipse pour créer vos fichiers Java, vous pouvez choisir de l'exporter sous la forme d'un fichier jar exécutable. Je l'ai fait avec mes programmes et je peux simplement cliquer sur le pot et il fonctionnera comme ça. Cela fonctionnera sur les deux fenêtres, ainsi que sur os x.

0
user2675678

Créer le fichier .bat:

start javaw -jar %*

Et choisissez par défaut de l'application pour ouvrir .jar avec ce fichier .bat.

Il va fermer cmd lorsque vous démarrez votre fichier .jar.

0
Hongarc

Pour compiler:

javac  -cp ".;./mysql-connector-Java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart.Java

Pour courrir:

Java  -cp ".;./mysql-connector-Java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart
0

Faire un start.bat était la seule chose qui a fonctionné pour moi.

ouvrez un document texte et entrez. Java -jarquel que soit le vôtre s'appelle.jar

enregistrez le fichier start.bat dans le même dossier que le fichier .jar à exécuter. puis lancez le. chauve souris

0
freeloaderzful