Salut,
J'aurai voulu savoir si mon manifest à l'air correct, j'ai un erreur lorsque j'éxecute mon Jar... :aie:
Merci d'avance. :mrgreen:
Code:
1
2 Main-Class: packageCDTheque.CDTheque Class-Path: CDTheque.jar
Version imprimable
Salut,
J'aurai voulu savoir si mon manifest à l'air correct, j'ai un erreur lorsque j'éxecute mon Jar... :aie:
Merci d'avance. :mrgreen:
Code:
1
2 Main-Class: packageCDTheque.CDTheque Class-Path: CDTheque.jar
Es-tu sûr que le problème vient de ton manifest ? Je n'ai jamais eu de problème de déploiement suite à un manifest douteux, inexistant ou dans un mauvais répertoire (non conforme à la norme J2EE).
Perso, j'aurais ajouté une ligneCode:Manifest-Version:
Salut,
On dirait que ton jar se référence lui-même dans son Class-Path, ce qui est inutile.
Ensuite ce serait utile d'avoir la commande que tu utilises pour lancer le jar ainsi que l'erreur que tu obtiens...
a++
Bon, voilà comment j'ai procédé... pas trop le temps de voir ça en détail maintenant => Up||Edit demain!
;)
En fait, après quelques tatonnements, l'erreur a changé, j'ai l'impression que c'est la classe main qui pose problème.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 pogo@pogo-pc:~$ cd workspace/CDTheque/ pogo@pogo-pc:~/workspace/CDTheque$ cd packageCDTheque pogo@pogo-pc:~/workspace/CDTheque/packageCDTheque$ jar cvmf manif CDThqJar.jar *.class manifest ajouté ajout : CD.class(entrée = 3253) (sortie = 1284)(60% compressés) ajout : CDFrame.class(entrée = 11247) (sortie = 5137)(54% compressés) ajout : CDTheque.class(entrée = 794) (sortie = 413)(47% compressés) ajout : Database.class(entrée = 9877) (sortie = 4343)(56% compressés) ajout : Emprunt.class(entrée = 1405) (sortie = 652)(53% compressés) ajout : Personne.class(entrée = 1723) (sortie = 835)(51% compressés) pogo@pogo-pc:~/workspace/CDTheque/packageCDTheque$ java -jar CDThq.jar Unable to access jarfile CDThq.jar pogo@pogo-pc:~/workspace/CDTheque/packageCDTheque$ java -jar CDThqJar.jar Exception in thread "main" java.lang.NoClassDefFoundError: packageCDTheque/CDTheque pogo@pogo-pc:~/workspace/CDTheque/packageCDTheque$
pourquoi ne pas faire comme cela :
puisque tes ressources semblent se trouver dans le dossier CDThequeCode:
1
2 Main-Class: packageCDTheque.CDTheque Class-Path: CDTheque
Non : l'attribut Class-Path sert à référencer d'éventuelle autre librairie nécessaire à l'exécution du programme (driver JDBC, librairies tierces, etc.), et non pas à référencer le répertoire du projet...
En effet : la classe main n'est pas correctement ajouté à l'archive, puisqu'il faut conserver l'arborescence des packages à l'intérieur du jar. Or tu n'ajoutes que les classes...
Donc utilises le manifest suivant :
(attention à bien laisser une ligne vide à la fin)Code:Main-Class: packageCDTheque.CDTheque
Ensuite tu te rend dans le répertoire de base de ton classpath, c'est à dire celui qui contient le répertoire de base de ton arborescence en package : /workspace/CDTheque/ dans ton cas et tu ajoutes tes packages :
Et cela devrait marcher mieux ;)Code:pogo@pogo-pc:~/workspace/CDTheque$ jar cvmf manif CDThqJar.jar packageCDTheque
a++
oui t'as raison :oops: à force d'utiliser les EDIs, j'oublie parfois la notion de classPathCitation:
Non : l'attribut Class-Path sert à référencer d'éventuelle autre librairie nécessaire à l'exécution du programme (driver JDBC, librairies tierces, etc.), et non pas à référencer le répertoire du projet...
sinon la deuxième citation n'est pas de ma part :lol:
Mais-Class: doit contenir le nom de la classe qui contient la fonction main().
Class-Path: pour réferencer d'autre .jar que vous avez importé (comme vous avez cité: les drivers JDBC par exemple).
Le fichier doit contenir un saut de ligne à la fin.
Youplà Boum! Ben merci beaucoup, grâce à vos conseils, ça marche! ... :mrgreen: ... chez moi.
Et c'est bien beau, mais lorsque que j'emmene mon jar et mon petit fichier qui contient la commande "java -jar monJar.jar" et que j'exécute, ca me dit grossomodo que les classes que j'ai utilisé pour l'interface graphique (entre autre celles d'AWT et de SWING) sont introuvable. J'en déduis qu'il faut que j'inclue ces classes dans mon Jar. La question est : y a-t-il une technique particulière pour le faire ou est-ce que je vais chercher tel un barbare les .class là où ils sont?
Merci d'avance.
;)