Exécution d'un fichier JAR sous Windows

228

J'ai un fichier JAR nommé helloworld.jar . Afin de 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 l'exécuter avec un double-clic à la place? Dois-je installer un logiciel?

DonX
la source
1
Suivez les étapes décrites ici: Exécution d'un bocal sur Vista avec un double clic
RealHowTo

Réponses:

123

L'itinéraire le plus simple consiste probablement à mettre à niveau ou à réinstaller Java Runtime Environment (JRE).

Ou ca:

  • Ouvrez l'Explorateur Windows, dans les Outils, sélectionnez 'Options des dossiers ...'
  • Cliquez sur l'onglet Types de fichiers, faites défiler vers le bas et sélectionnez Type de fichier JAR.
  • Appuyez sur le bouton Avancé.
  • 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 accédez à l'emplacement de l'interpréteur Java javaw.exe.
  • Dans le champ Application utilisée pour effectuer 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 ça; l'autre partie du nom du chemin peut varier en fonction de la version de Java que vous utilisez ), puis appuyez sur les boutons OK jusqu'à ce que toutes les boîtes de dialogue soient fermées.

Qui a été volé ici: http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html

Brian Kelly
la source
13
Je pense que le moyen le plus simple est de cliquer avec le bouton droit sur n'importe quel fichier jar> d'ouvrir avec et de choisir "Java runtime environment". :)
Kassem
ce faisant, me donne toujours cette erreur "La plate-forme Java SE binaire a cessé de fonctionner" ... Quelqu'un peut-il aider, quel pourrait être le problème?
Faizan
1
@Faizan - Votre problème ressemble à un problème distinct. Je vois quelques résultats SO et Google pour "La plate-forme Java SE binaire a cessé de fonctionner". Je les vérifierais.
Brian Kelly
26
il n'y a pas d'onglet Types de fichiers dans les options des dossiers dans Windows 7
Radu Simionescu
79

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

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

Hendy Irawan
la source
Merci pour l'astuce, si seulement il y avait un moyen de se débarrasser de ces petites nouvelles boîtes
in
55

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

java -jar MyJavaTool.jar

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

Demorf
la source
Mais comment est exécuté le .bat? Serait-ce la même stratégie pour que l'application Java ouvre également une session de ligne de commande?
Ungeheuer
1
Eh bien non, vous ouvririez simplement le fichier bat. Je ne suis pas sûr de comprendre votre question.
26

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

  1. Ouvrir un notepad.exe
  2. Écrire : java -jar Example.jar
  3. Enregistrez-le avec l'extension .bat
  4. Copiez-le dans le répertoire .jarcontenant le fichier
  5. Double-cliquez dessus pour exécuter votre .jarfichier
Pusu
la source
4
1) Cela ne fonctionnerait pas sur Mac. ou Unix. 2) Il crée un fichier inutile. 3) De meilleures réponses ont été fournies il y a plus de 2 ans. 4) ..Et ce mot est «vous».
Andrew Thompson
Excellent moyen d'exécuter un bocal sous Windows! Il ne masque pas non plus l'entrée de ligne de commande, j'ai donc pu voir pourquoi mon pot ne fonctionnait pas comme je le pensais. Je vous remercie.
Joe
15

Un effet secondaire intéressant de cela provoque un problème lors du démarrage des fichiers jar exécutables dans l'invite de commande.

Si vous essayez (dans une invite de commande):

jarfile.jar parameter

Pas de joie, car cela se traduit par ce qui suit (ce qui ne fonctionne pas):

javaw.exe -jar jarfile.jar parameter

Cependant, la commande suivante fonctionne:

java.exe -jar jarfile.jar parameter

Si vous modifiez l'association dans le gestionnaire de fichiers comme décrit ci-dessus pour:

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

Ensuite, vous pouvez taper:

jarfile.jar parameter

dans l'invite de commande et cela fonctionnera maintenant!

EDIT: (Cependant, vous obtenez ensuite une fenêtre de console noire lorsque vous exécutez une application Java basée sur un formulaire (non console), donc ce n'est pas une solution idéale)

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

Afin de 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électionnez les propriétés), vous ne pouvez pas ajouter de paramètres à l'icône du fichier jar elle-même dans ce façon.

Il n'y a pas de solution unique et cohérente ici, mais vous auriez le même problème avec n'importe quelle autre application console.

Il existe une application freeware Windows appelée "bat to 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 l'exe avec cette application, et le faire le nettoyer lorsqu'il a fini de fonctionner, donc cela peut être une solution plus élégante.

Bob
la source
11

Premier chemin d'accès défini sur cmd (invite de commande):

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

puis tapez

java -jar yourProgramname.jar 
suraj
la source
9

Sous Windows XP *, vous n'avez besoin que de 2 commandes shell :

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

évidemment en utilisant le bon chemin pour le JRE et n'importe quel nom que vous voulez à la place myjarfile.

Pour vérifier simplement 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

user85421
la source
1
Un utilisateur anonyme l'a testé avec Windows 7 (JRE 7). Ils disent que cela fonctionne si vous exécutez cmd en tant qu'administrateur.
Jeremy Stein
La meilleure solution à mes yeux. Fonctionne jusqu'à Windows 10. Les commandes ftype et assoc doivent s'exécuter dans une fenêtre d'invite de commandes avec des privilèges d'administrateur.
SixDoubleFiveTreeTwoOne
7

Il y a moyen sans demander à l'utilisateur de 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. Ainsi, il est possible que le programme java s'exécute lui-même 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
    }
}
dario111cro
la source
6

Outre toutes les autres suggestions, il y a une autre chose que vous devez considérer. Votre helloworld.jar est-il un programme console? Si c'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 shell cmd.exe standard pour leurs entrées et sorties. Habituellement, le jar "launcher" est lié à javaw.exe qui ne crée pas de fenêtre shell de commande.


la source
4

Dans regedit, ouvrez HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command

Double-cliquez sur la valeur par défaut à gauche et ajoutez -jar entre le java.exechemin et l' %1argument " ".

grwww
la source
C'était ça. Merci. Toutes les autres choses n'ont pas aidé.
raedma
3

Vous voulez vérifier deux ou trois choses; s'il s'agit de votre propre fichier jar, assurez-vous d'avoir défini une classe principale dans le manifeste. Puisque nous savons que vous pouvez l'exécuter à partir de la ligne de commande, l'autre chose à faire est de créer un raccourci Windows et de modifier les propriétés (vous devrez regarder autour, je n'ai pas de machine Windows à regarder) afin que la commande qu'il exécute sur open 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.

Charlie Martin
la source
1

Malheureusement, ce n'est pas aussi facile que Microsoft a supprimé la boîte de dialogue avancée d'association de fichiers dans les éditions récentes de Windows. - Avec les versions plus récentes de Windows, vous ne pouvez spécifier que l'application qui sera utilisée pour ouvrir le fichier .jar.

La correction de l'ouverture d'un 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 changez le programme associé en cliquant sur le bouton "Modifier ...".

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

REMARQUES:

  • Ne l'utilisez pas java.execar cela ouvrira la fenêtre du shell.
  • L' outil jarfix mentionné dans ce fil ne fait probablement rien de plus que la modification du registre pour vous. Je préfère la méthode de modification manuelle du registre, car cela implique que l'administrateur système peut "pousser" la modification du registre sur tous les postes de travail du réseau.
DejanLekic
la source
1

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

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

Samintha Kaveesh
la source
1

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

Vous devez bien sûr avoir les .classfichiers associés java.exe. Cela pourrait ne pas fonctionner dans tous les cas, mais cela a fonctionné la plupart du temps pour moi.

user4343596
la source
1

PreScript : si votre invite apparaît et disparaît immédiatement, la raison en est que votre programme est exécuté et fermé automatiquement. Essayez de mettre un scanner à la fin pour terminer et il gardera votre invite en attente de saisie avant de terminer. (Ou utilisez peut-être un délai)

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

Solution: ouvrez n'importe quel éditeur de texte et écrivez la ligne de commande: java -jar Example.jar Enregistrez le fichier en tant que fichier .bat. Exécutez ce fichier bat pour obtenir la sortie requise.

En faisant un pas en avant, vous pouvez convertir ce fichier bat en fichier exe en utilisant un outil GUI simple comme Bat To Exe Converter.

Maintenant, vous pouvez partager votre fichier .jar en tant que distribution dans un fichier .exe que tout le monde peut utiliser. (Surtout les fichiers .jar et .bat car .bat n'est qu'une invite cmd) (Comment cela semble logique)

Je suis assez nouveau dans le développement et j'apprends beaucoup. Veuillez excuser toutes les erreurs commises. Les suggestions sont les bienvenues.

Manthan_Admane
la source
1

utiliser le .batfichier:

Mettez votre commande dans un fichier .bat. ici, votre commande sera java -jar path\yourJarName.jar. Something like: java -jar C:\workspace\myApplication.jar

Enregistrez-le et double-cliquez sur le fichier bat pour exécuter votre bocal. Le nom de votre fichier sera quelque chose commefileName.bat

Bandham Manikanta
la source
0

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


la source
Il ne semble pas être garanti que cela fonctionne, selon cette question
doubleDown
0

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

ouvrez un document texte et entrez. java -jar quel que soit le vôtre est appelé .jar

enregistrez-le sous start.bat dans le même dossier que le fichier .jar que vous souhaitez exécuter. puis exécutez le. chauve souris

freeloaderzful
la source
0

Si vous devez exécuter le fichier jar en double-cliquant dessus, vous devez le créer en tant que " JAR exécutable ". 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 la page d'aide d'Eclipse: LIEN

Nomesh DeSilva
la source
0

Il existe de nombreuses méthodes pour exécuter le fichier .jar sur Windows. L'un d'eux utilise l'invite de commande.

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 filename.jar" Remarque: vous pouvez également utiliser des applications tierces telles que WinRAR, jarfix, etc.
irisrei08
la source
0

Créer un .batfichier:

start javaw -jar %*

Et choisissez l'application par défaut pour l'ouvrir .jaravec ce .batfichier.

Il se fermera cmdau démarrage de votre .jarfichier.

hong4rc
la source
0

Pour la compilation:

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
anil kumar meena
la source
0

En fait, j'ai aussi rencontré ce problème, je l'ai résolu en créant un runner .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;
       }
   }
}



Ensuite, dans votre classe d'application 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 Main

ZOLDIK
la source