problème d'exécution d'un jar - Java - Programmation
Marsh Posté le 06-09-2004 à 19:14:42
t'aurais pas un peu oublié d'y mettre tes classes dans ton jar?
(jar tf tonjar.jar)
Marsh Posté le 07-09-2004 à 15:10:19
the real moins moins a écrit : t'aurais pas un peu oublié d'y mettre tes classes dans ton jar? |
excatement je pense comme toi the real moins moins qu'il n'a pas mis les .class dans son jar et donc c normal que ça plante !
Marsh Posté le 07-09-2004 à 15:14:46
axk47 a écrit : excatement je pense comme toi the real moins moins qu'il n'a pas mis les .class dans son jar et donc c normal que ça plante ! |
Désolé mais j'ai bien tout ds le package (jar tf analyseur.jar).
Je ne sais pas d'ou ca vient ?
Marsh Posté le 07-09-2004 à 15:16:24
fait peter le résultat du jar tf ...
Marsh Posté le 07-09-2004 à 15:16:42
(100 balles sur un "problème" de packages)
Marsh Posté le 08-09-2004 à 11:07:24
the real moins moins a écrit : (100 balles sur un "problème" de packages) |
100 balles aussi que l'attribut du manifest c'est pas 'Classpath' mais 'Class-path'
Marsh Posté le 08-09-2004 à 11:08:41
ReplyMarsh Posté le 09-09-2004 à 14:04:26
benou a écrit : y en a vraiment besoin d'alleur de cet attribut ?? |
Quand tu as un jar qui contient qqch l'attribut Class-path du manifest te permets de ne pas avoir à fournir un classpath à la jvm. Sinon c'est obligatoire.
Mais y'a toujours moyen de passer pas un script shell (ou batch) pour construire le classpath et lancer les jar executable
Marsh Posté le 09-09-2004 à 15:06:18
nan mais ok, mais là, ca sert à rien ...
d'ailleur, j'ai jamais trop compris à quoi ca pouvait servir le classpath dans le manifest : un classpath c'est dépendant de l'OS et de la machine sur laquelle est executé du code java => à quoi ca sert de foutre un truc dépendant de la machine dans une archive contenant du code qui doit tourner "Everywhere" ?
Marsh Posté le 09-09-2004 à 15:28:33
benou a écrit : nan mais ok, mais là, ca sert à rien ... |
je livre une appli qui a besoin de 3 libs et c'est tout par exemple...
je mets ces 3 libs dans mon manifest, et un java -jar toto.jar va se lancer comme il faut.
=> sous windows, le doubleclick sur le jar va marcher.
Marsh Posté le 09-09-2004 à 15:39:46
(à condition de livrer les libs avec et que l'user les foute pas n'importe ou, mais j'ai l'impression que le concept à du mal à rentrer dans la tetabenoo, c'est pas la premiere fois qu'il pose la question )
Marsh Posté le 09-09-2004 à 23:09:27
lorill a écrit : je livre une appli qui a besoin de 3 libs et c'est tout par exemple... |
ok, mais quand tu indiques ces 3 libs, il faut que tu donnes le chemin vers ces 3 libs (c'est ca le rôle d'un classpath), hors l'emplacement de ces jars peut être différent d'un poste à l'autre => Comment tu peux savoir quand tu créées l'archive où vont êtres les jars en questions quans elle sera executée sur un autre poste ?
Marsh Posté le 09-09-2004 à 23:10:42
NNNNNNBORDEL !!!
BENOU !!
tu distribute ton appli sous forme d'un tgz
supermachin-1.0/machin.jar
supermachin-1.0/lib/trucmuche.jar
supermachin-1.0/lib/pouet.jar
supermachin-1.0/lib/bidule.jar
!!!
Marsh Posté le 09-09-2004 à 23:21:54
the real moins moins a écrit : NNNNNNBORDEL !!! |
et ca marche les classpath relatif au jar dans le manifest ?
Marsh Posté le 09-09-2004 à 23:50:06
ReplyMarsh Posté le 15-09-2004 à 19:33:08
benou a écrit : nan mais ok, mais là, ca sert à rien ... |
si c'est un chemin relatif jvois pas le probleme
edit: grilled mais c'est pas grave.
ca passe les chemins relatifs bien sur
Marsh Posté le 15-09-2004 à 21:14:55
the real moins moins a écrit : ben tiens |
Beh ouais, tu es prié de fourguer toutes les librairies dont l'applic à besoin p.e. dans un sous répertoire lib et de les renseigner dans ton manifest, genre lib/machin.jar lib/truc.jar.
Et tu roules anywhere anytime, zats ze byouti of Java.
Marsh Posté le 15-09-2004 à 23:18:16
... ben je sais
je disais à benou "ben tiens, manquerait plus que ça que ça marche pas les path relatifs"
...
Marsh Posté le 15-09-2004 à 23:36:41
ben c'est assez étonnant je trouve : tu mets des path relatifs à l'intérieur d'un jar. ca veut dire que le jar ne se suffit pas à lui tout seul et tu n'as aucune garantit que les jars nécessaire vont bien se trouver à côté au moment où l'appli sera lancé ...
c'est assez bizarre je trouve cette histoire de classpath dans le manifest. Ca va à l'encontre de l'idée que je me fais d'un jar...
ils auraient du faire un truc à la ear ou war pour les applications...
Marsh Posté le 15-09-2004 à 23:47:17
PUTAIN BENOU TU FAIS CHIER CA FAIT VINGT-CINQ FOIS QU'ON RESSASSE LA QUESTION ET A CHAQUE FOIS T4AS OUBLI2 QU4ON T4AVAIT D2J0 EXPLIQU2
Marsh Posté le 15-09-2004 à 23:49:00
benou a écrit : |
uberjar, merci au revoir.
mais c'est pas compatible avec qques licenses, dont celles de sun, à mon avis.
Marsh Posté le 16-09-2004 à 00:08:54
the real moins moins a écrit : PUTAIN BENOU TU FAIS CHIER CA FAIT VINGT-CINQ FOIS QU'ON RESSASSE LA QUESTION ET A CHAQUE FOIS T4AS OUBLI2 QU4ON T4AVAIT D2J0 EXPLIQU2 |
rien à voir, je donne un avis.
Marsh Posté le 16-09-2004 à 00:09:36
the real moins moins a écrit : merci au revoir. |
t'as une façon pénible de dialoguer toi depuis quelques temps ...
Marsh Posté le 16-09-2004 à 00:13:13
en meme temps, j'ai un peu l'impression qu'on tourne en rond, à force c'est énervant, tu comprends
Marsh Posté le 16-09-2004 à 00:14:13
benou a écrit : ben c'est assez étonnant je trouve : tu mets des path relatifs à l'intérieur d'un jar. ca veut dire que le jar ne se suffit pas à lui tout seul et tu n'as aucune garantit que les jars nécessaire vont bien se trouver à côté au moment où l'appli sera lancé ... |
oui mais qd les licences sont differentes ca peux poser un probleme
sinon concernant la "garantit" je dit vive les installeurs
Marsh Posté le 16-09-2004 à 00:14:47
the real moins moins a écrit : en meme temps, j'ai un peu l'impression qu'on tourne en rond, à force c'est énervant, tu comprends |
je vois surtout que tu perds pas une occasion pour foncer dans le tas ...
enfin bon voilà quoi .... be cool
Marsh Posté le 16-09-2004 à 00:15:57
veryfree a écrit : oui mais qd les licences sont differentes ca peux poser un probleme |
genre ?
en quoi ca ose plus problême que dans le cas des ear ?
Marsh Posté le 16-09-2004 à 00:17:20
benou a écrit : genre ? |
ben ça n'en pose pas plus, seulement je connais pas une seule application "grand public" qui soit distribuée en ear
Marsh Posté le 16-09-2004 à 00:20:52
benou a écrit : genre ? |
jpensait plus a un jar contenant tout les autres jars.
si un jar n'est pas livré avec les sources, il faudrait alors le décompressé pour en refaire un et ca c'est souvent interdit par les licences.
les ear connais pas trop mais ca existe des appli desktop distribué sous ce format?
Marsh Posté le 16-09-2004 à 00:26:49
non.
mais uberjar te construit un jar avec les autres jars dedans sans les deconstruite...
Marsh Posté le 16-09-2004 à 12:23:45
the real moins moins a écrit : ... ben je sais |
Oui, oui, je ne faisais que surenchérir pour benou un peu dans les choux sur le coup.
Marsh Posté le 16-09-2004 à 12:26:09
benou a écrit : ben c'est assez étonnant je trouve : tu mets des path relatifs à l'intérieur d'un jar. ca veut dire que le jar ne se suffit pas à lui tout seul et tu n'as aucune garantit que les jars nécessaire vont bien se trouver à côté au moment où l'appli sera lancé ... |
C'est clair, une erreur dans ton classpath et ça te pète à la tronche lors de l'exécution. T'as intérêt à bien, bien tester ton packaging.
Marsh Posté le 16-09-2004 à 14:16:28
sircam a écrit : C'est clair, une erreur dans ton classpath et ça te pète à la tronche lors de l'exécution. T'as intérêt à bien, bien tester ton packaging. |
c'est pas ce que je veux dire...
mais je vous laisse avec vos certitudes. j'ai pas envie de me battre contre vos avis bien tranchés.
Marsh Posté le 16-09-2004 à 14:27:59
benou a écrit : c'est pas ce que je veux dire... |
Fait pas le grognon. Je t'ai répondu "oui" sur base de :
"tu n'as aucune garantit que les jars nécessaire vont bien se trouver à côté au moment où l'appli sera lancé ... "
alors t'as pas à te battre en fait.
Alors si c'est pas ce que tu veux dire, tu peux reformuler.
Marsh Posté le 16-09-2004 à 15:00:18
benou a écrit : c'est pas ce que je veux dire... |
le seul truc c'est que tu dois distribuer ton appli avec d'autres fichiers que ton jar. mais à priori y'a pas de raison que l'utilisateur les deplace, ces autres jars!?
Sinon uberjar, t'as essayé?
Marsh Posté le 16-09-2004 à 15:26:45
the real moins moins a écrit : |
visiblement faut utiliser maven ...
et je me suis dis que "un jour" j'essayerait maven. j'en profiterai pour regarder ce truc là.
Mais si tu veux nous faire part de tes remarques sur cet outil, t'es le bienvenu. C'est un peu ca l'esprit du forum à la base, pas simplement filler des liens.
je dois être un peu ennervé moi en fait ...
Marsh Posté le 16-09-2004 à 15:31:53
je pense pas que maven soit obligatoire non !?
et je vois pas ce que je pourrais te raconter sur maven. il est loin d'etre parfait mais je conçoit mal de commencer un projet sans lui, à present. et à part, te raconter ma vie avec maven, j'ai pas le temps, et en plus, tu prend 30 minutes pour essayer, et t'auras ton avis.
Marsh Posté le 06-09-2004 à 18:18:23
Bonjour;
J'essaye d'exécuter un jar que j'ai crée et j'ai ce msg d'erreur à l'exécution du jar:
Exception in thread "main" java.lang.NoClassDefFoundError: AppliPrincipal
Sachant que mon fichier manifest contient :
Manifest-Version: 1.0
Main-Class: .AppliPrincipal
Classpath: .\Analyseur.jar
Construction du jar :
jar cmf manifest.txt Analyseur.jar .
Exécution du jar :
java -jar Analyseur.jar