web-dev-qa-db-fra.com

Comment créer un fichier .jar à l'aide du terminal

J'essaie de créer un fichier .jar en utilisant le terminal mac mais j'ai un peu de mal. J'ai suivi les étapes ici mais j'ai échoué. J'ai reçu ce message d'erreur:

Failed to load Main-Class manifest attribute from
aclient.jar

Alors, comment procédez-vous exactement? Mon programme Java s'appelle Main.Java et je l'ai compilé dans un fichier .class. Maintenant, que dois-je faire?

Merci

20
Katana24

1) Assurez-vous que tous les fichiers nécessaires se trouvent dans le répertoire, vous avez ouvert un terminal/invite de commande et vous avez accédé à ce répertoire.

2) Compilez la classe .Java, par exemple HelloWorld.Java avec

javac HelloWorld.Java

3) Cela produira un fichier .class nécessaire pour le fichier JAR.

4) Ensuite, créez un fichier manifeste (enregistré en utilisant l'extension .txt) à l'aide de l'éditeur de texte et saisissez ce qui suit

Main-Class: HelloWorld

ou quel que soit le nom de votre fichier.

5) Créez ensuite le fichier JAR en utilisant ce code:

jar cfm HelloWorld.jar Manifest.txt HelloWorld.class

6) Exécutez le fichier:

Java -jar HelloWorld.jar

Si quelque chose ne semble pas clair, consultez ces sites Web: création d'un fichier jar et définition d'un point d'entrée d'applications .

J'espère que cela aide les autres, applaudit Tom!

Éditer:

Après le commentaire d'Inga, il convient de noter que pour inclure plusieurs fichiers dans le bocal, vous devez utiliser:

javac *.Java

suivi par

jar cfm HelloWorld.jar Manifest.txt *.class
45
Katana24

Oui, nous devons utiliser une nouvelle ligne à la fin du nom de la classe ... Cela a fonctionné pour moi

c.-à-d. classe principale: HelloWorld

 It will look like this in Notepad++
 1.Main-Class: HelloWorld
 2.
5
Manoj N Revankar

Peut-être que cela aidera le fichier Manifest.txt:

Avertissement: le fichier texte doit se terminer par une nouvelle ligne ou un retour chariot. La dernière ligne ne sera pas analysée correctement si elle ne se termine pas par une nouvelle ligne ou un retour chariot.

3
user2332921

Vous devez avoir un fichier texte qui définit la classe principale. par exemple

% cat MyMain
Main-Class: HelloWorld

ensuite

%jar cvfm foo.jar MyMain *.class
%Java -jar foo.jar
Hello world 

Voir: http://Java.Sun.com/j2se/1.4.2/runtime.html#example

2
Tom J