J'ai écrit un fichier .Java, appelé Main.Java, et l'ai compilé à l'aide du fichier javac de l'invite de commande Windows. Le compilateur crée plusieurs fichiers .class (appelés Main.class, Main $ 1.class et Main $ 2.class - probablement parce que j'ai des classes internes anonymes dans mon fichier Main.Java). J'essaie de créer un fichier .jar exécutable afin de pouvoir double-cliquer sur un raccourci pour exécuter cette application (il s'agit d'une application Java Swing), mais j'échoue lorsque je navigue dans le répertoire des trois fichiers de classe et que je tape:
jar cfv file.jar Main.class Main$1.class Main$2.class
L'invite de commande affiche ensuite ce texte:
added manifest
adding: Main.class(in 4871) (out = 2848)(deflated 41%)
adding: Main$1.class(in 1409) (out = 833)(deflated 40%)
adding: Main$2.class(in 1239) (out = 767)(deflated 38%)
Malgré cela, lorsque je double-clique sur le fichier file.jar dans l'Explorateur Windows, rien ne se passe. Aucune application de swing ne s'ouvre.
J'espère que quelqu'un pourra m'aider avec ça. Je vous remercie
Meilleur ... SL
Vous devez utiliser le commutateur de point d'entrée -e
(avec le nom de la classe contenant la méthode main()
) comme suit:
jar cfve file.jar Main Main.class Main$1.class Main$2.class
Il faut que quelque chose indique à Java quelle classe doit être lancée automatiquement ... C'est le manifeste - voir description ici Vous devez emballer le fichier Manifest.mf dans votre pot.
jar xf fileName.jar
META-INF
& Copyright.mk
JAD.exe
à partir de Google (son fichier zip)jad.exe
jad.exe
jad fileName.clas
s (le nom de fichier de la classe que vous voulez modifier)fileName.jad
sera généré, renommez-le en fileName.Java
fileName.Java
(si sa référence à un autre fichier de classe le configure dans Eclipse en conséquence)jar cf fileName.jar
(* représente tous les fichiers de classe indépendamment des répertoires)