(java) : problème de jar
Sandrine1327
-
sandul Messages postés 4013 Statut Membre -
sandul Messages postés 4013 Statut Membre -
Bonjour,
j'ai un petit soucis pour exécuter mon .jar.
Avant de poser la question sur ce forum, j'ai fait de nombreux tutoriels, mais je ne trouve pas.
Donc pour prendre le programme le plus simple possible :
public class ClassePrincipale
{
public static void main(String [] args)
{System.out.println("grrr !");}
}
que je mets dans le répertoire Projet.
J'ai un manifest MANIFEST.MF :
Main-Class: ClassePrincipale
avec un retour à la ligne et j'exécute la commande :
jar cvmf MANIFEST.MF Programme.jar *
Mon jar se crée et quand je l'exécute, il me dit :
Exception in thread "main" java.lang.NoClassFoundError : Programme.jar
Caused by ...
Could not find the main class : Programme.jar. Program will exit
Je suis un peu désespérée, quelqu'un peut m'aider ?
Merci !
j'ai un petit soucis pour exécuter mon .jar.
Avant de poser la question sur ce forum, j'ai fait de nombreux tutoriels, mais je ne trouve pas.
Donc pour prendre le programme le plus simple possible :
public class ClassePrincipale
{
public static void main(String [] args)
{System.out.println("grrr !");}
}
que je mets dans le répertoire Projet.
J'ai un manifest MANIFEST.MF :
Main-Class: ClassePrincipale
avec un retour à la ligne et j'exécute la commande :
jar cvmf MANIFEST.MF Programme.jar *
Mon jar se crée et quand je l'exécute, il me dit :
Exception in thread "main" java.lang.NoClassFoundError : Programme.jar
Caused by ...
Could not find the main class : Programme.jar. Program will exit
Je suis un peu désespérée, quelqu'un peut m'aider ?
Merci !
A voir également:
- (java) : problème de jar
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
2 réponses
Salut,
Est-ce que ClassePrincipale a été déclarée dans un package? Dans ce cas, rajouter son chemin dans le .MF. Exemple:
Sinon, regarde dans le jar (tu peux l'ouvrir par exemple avec WinRar) pour vérifier que là dedans il y a ce que tu attends:
META-INF
|--MANIFEST.MF
com
|--sandrine
|----- test
|----------ClassePrincipale
++
Est-ce que ClassePrincipale a été déclarée dans un package? Dans ce cas, rajouter son chemin dans le .MF. Exemple:
Manifest-Version: 1.0 Main-Class: com.sandrine.test.ClassePrincipale
Sinon, regarde dans le jar (tu peux l'ouvrir par exemple avec WinRar) pour vérifier que là dedans il y a ce que tu attends:
META-INF
|--MANIFEST.MF
com
|--sandrine
|----- test
|----------ClassePrincipale
++
Je viens de regarder encore une fois l'erreur... Tu lances probablement sans l'option -jar ?
java -jar monJar.jar
En fait j'ai réussi à le faire marcher avec un fichier.
Finalement le problème c'est qu'il fallait que les fichiers soient dans le répertoire courant et non dans des sous répertoires. (Enfin c'est ce que je crois, ca c'est mis à marcher tout d'un coup).
En tout cas je suis embetée parceque je dois faire un jar sur un gros projet java dans lequel il y a pleins de packages.
J'ai essayé avec Eclipse aussi, mais j'ai toujours le problème où il me dit qu'il ne trouve pas le main...
Pourtant, je remplis bien le manifeste, et je mets bien le -jar.
Finalement le problème c'est qu'il fallait que les fichiers soient dans le répertoire courant et non dans des sous répertoires. (Enfin c'est ce que je crois, ca c'est mis à marcher tout d'un coup).
En tout cas je suis embetée parceque je dois faire un jar sur un gros projet java dans lequel il y a pleins de packages.
J'ai essayé avec Eclipse aussi, mais j'ai toujours le problème où il me dit qu'il ne trouve pas le main...
Pourtant, je remplis bien le manifeste, et je mets bien le -jar.
Exemple de manifest
Si beaucoup de jars, tu feras attention à couper les lignes au caractère 78 et de commencer les lignes suivantes par un espace.
Par la suite, je te recommande d'utiliser Ant pour créer la distribution finale, il est bien intégrée sous Eclipse. Il suffira de faire un double clic sur la tâche que tu veux faire et il va l'exécuter vite-fait. Tu peux copier ton manifest quelque part dans ton projet (dans un folder, pas un package), et dire à Ant de l'utiliser au moment de la création du jar.
++
Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.0 Created-By: 1.3.0 (IBM Corporation) Main-Class: com.displanis.server.setup.ServerLaunch Class-Path: . connector.jar com.ibm.mq.jar ojdbc14.jar jni.jar xercesI mpl.jar xml-apis.jar log4j-1.2.14.jar jdom.jar jasperreports-2.0.4.ja r itext-1.3.1.jar commons-logging-api-1.0.2.jar commons-logging-1.1.j ar commons-digester-1.7.jar commons-collections-3.0.jar commons-dbcp- 1.2.1.jar commons-pool-1.2.jar jtds-1.1.jar jsiv-2.5.0.jar activation -1.1.jar commons-beanutils-1.7.0.jar commons-codec-1.3.jar commons-lo gging-1.1.jar jaxws-api-2.0.jar jaxen-1.1-beta-9.jar mail-1.4.jar saa j-api-1.3.jar saaj-impl-1.3.jar spring-1.2.6.jar stax-api-1.0.1.jar w sdl4j-1.6.1.jar wstx-asl-3.2.0.jar xbean-2.2.0.jar xbean-spring-2.8.j ar xfire-aegis-1.2.6.jar xfire-annotations-1.2.6.jar xfire-core-1.2.6 .jar xfire-java5-1.2.6.jar xfire-jaxws-1.2.6.jar xfire-spring-1.2.6.j ar xfire-jsr181-api-1.0-M1.jar XmlSchema-1.1.jar commons-httpclient-3 .0.jar org.mortbay.jetty-5.1.3.jarxfire-jaxb2-1.2.6.jar jaxb-api-2.0. jar jaxb-impl-2.0.1.jar jaxb-xjc-2.0.1.jar
Si beaucoup de jars, tu feras attention à couper les lignes au caractère 78 et de commencer les lignes suivantes par un espace.
Par la suite, je te recommande d'utiliser Ant pour créer la distribution finale, il est bien intégrée sous Eclipse. Il suffira de faire un double clic sur la tâche que tu veux faire et il va l'exécuter vite-fait. Tu peux copier ton manifest quelque part dans ton projet (dans un folder, pas un package), et dire à Ant de l'utiliser au moment de la création du jar.
++