[JAVA] Packager un jar contenant des jars utilisant des jars , etc ...

Packager un jar contenant des jars utilisant des jars , etc ... [JAVA] - Java - Programmation

Marsh Posté le 12-11-2003 à 19:30:30    

Je dois packager (en ligne de commande) une appli contenant des jars, ces jars utilisant d'autres jars, etc ...
Et j'ai un peu de mal, je me tape sans cesse des java.lang.NoClassDefFoundError
La solution de faicilité serait de déjarrer le tout, mais c'est pas très beau. Qu'en pensez-vous ?

Reply

Marsh Posté le 12-11-2003 à 19:30:30   

Reply

Marsh Posté le 12-11-2003 à 19:33:42    

que en plus d'être pas beau, c'est la pluspart du temps illégale.
 
Tu n'as pas bcp de solutions, il faut que tu mettes tes jars les un à côté des autres et que tu livres le tout sous la forme d'un zip par exemple.
Dans le manifest, tu peux indiquer les dépendances (les jars dont ton jar a besoin)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 12-11-2003 à 19:35:16    

sinon, y a peut être moyen de se bidouiller un ClassLoader qui va lire les jar dans des jar [:meganne]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 12-11-2003 à 19:55:44    

t a des packager ecrit en java qui sont pas mal , je pense a http://www.izforge.com/izpack/

Reply

Marsh Posté le 12-11-2003 à 19:55:47    

en fait, je crois que je comprend pas tout !
Dans ma classe principale Appli, j'ai une variable membre instance de Classe1, Classe1 qui se trouve dans un jar à part monjar.jar
Et c'est cette Classe1 qu'il ne trouve pas. ALors que dans mon manifest, j'ai bien précisé monjar.jar dans le Class-Path

Reply

Marsh Posté le 12-11-2003 à 20:09:55    

ben oui mais est ce que au moment où tu lance ton appli, monjar.jar est dans le classpath ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 12-11-2003 à 20:14:12    

benou a écrit :

ben oui mais est ce que au moment où tu lance ton appli, monjar.jar est dans le classpath ?


non, en effet, et je ne sais pas comment faire puisque monjar.jar est dans le jar global de mon appli (monappli.jar)
je pensais qu'en mettant monjar.jar dans la section Class-Path du manifest de monappli.jar, ça suffirait


Message édité par noldor le 12-11-2003 à 20:15:31
Reply

Marsh Posté le 12-11-2003 à 20:15:32    

noldor a écrit :


non, en effet, et je ne sais pas comment faire puisque monjar.jar est dans le jar global de mon appli


ben c'est ce que je te disais quand je disais qu'il fallait que le jar soit "à côté" de ton autre jar, pas dedans [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 12-11-2003 à 20:16:34    

benou a écrit :


ben c'est ce que je te disais quand je disais qu'il fallait que le jar soit "à côté" de ton autre jar, pas dedans [:spamafote]

ah oui, OK, je comprends mieux maintenant, merci :jap:
mais y a vraiment pas de moyen d'en faire un jar quand même au final ?

Reply

Marsh Posté le 12-11-2003 à 20:23:15    

faut bien mettre des espaces entre les .jar dans ton manifest:
 
Class-Path: lib/skinlf.jar lib/nanoxml.jar lib/jython.jar lib/log4j.jar
 
ne pas utiliser de ',' ou de ';'
 
A+


Message édité par veryfree le 12-11-2003 à 20:24:20
Reply

Marsh Posté le 12-11-2003 à 20:23:15   

Reply

Marsh Posté le 12-11-2003 à 20:29:45    

veryfree a écrit :

faut bien mettre des espaces entre les .jar dans ton manifest:
Class-Path: lib/skinlf.jar lib/nanoxml.jar lib/jython.jar lib/log4j.jar


 :heink:  
 
tu veux dire que tu es arrivé à mattre ces jars dans le jar ??
 
et j'aurais dit des conneries depuis tout à l'heure ? :whistle:


Message édité par benou le 12-11-2003 à 20:30:12

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 12-11-2003 à 20:32:50    

non non;
 
je dit juste que mes jars sont dans un repertoire "lib" et que mon jar principal les trouve grace a cette entrée 'Class-Path: lib/skinlf.jar lib/nanoxml.jar lib/jython.jar lib/log4j.jar' de son fichier manifest.
 
je reste ds l'idée qu'il cherche juste a mettre plusieurs jars ds une distrib - ce que 90% des projet java font sans probleme - alors on peux se passer de tout mettre dans un meme jar :o
 
d'autant que ca pose souvent des problemes de licence comme tu  la deja dit


Message édité par veryfree le 12-11-2003 à 20:34:12
Reply

Marsh Posté le 12-11-2003 à 20:34:14    

ouais mais quand même ... je trouve ca dommage qu'on puisse pas imbriquer les jars :/


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 12-11-2003 à 20:35:54    

oui, il me semble avoir lu ici que les "war" etait capable de le faire (chui plus sur de l'extention d'un coup :D )
 
sinon, si tout est de la meme licence, tu dezip tout et tu fait un jar qui englobe tout et on en parle plus :D


Message édité par veryfree le 12-11-2003 à 20:36:38
Reply

Marsh Posté le 12-11-2003 à 20:39:43    

veryfree a écrit :

oui, il me semble avoir lu ici que les "war" etait capable de le faire (chui plus sur de l'extention d'un coup :D )


bah oui ... mais bon, je pense que les serveur d'application font tous comme tomcat : ils dézippent le war et ajoutent les jar se trouvant dans le rep WEB-INF/lib dans le classpath [:spamafote]
 
mais mon idée de ClassLoader me parait pas impossible à réaliser [:meganne]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 12-11-2003 à 20:41:10    

15 min plus tard...
 
benou reviens avec un code de 200 lignes
 
 
 
[:ddr555]

Reply

Marsh Posté le 12-11-2003 à 20:46:12    

veryfree a écrit :

15 min plus tard...
benou reviens avec un code de 200 lignes
[:ddr555]


heu nan ... là je suis encore au boulot :o
 
mais je garde l'idée ... ca pourrait être un bon exercice sur ClassLoader (que je connais pas bien).
 
D'un autre côté, je me dis que j'en ai jamais entendu parlé => c'est surement que ca existe pas => soit personne y a jamais pensé et je suis un génie, soit (et c'est bcp plus probable) y a un hic que je ne vois pas et c'est pas possible :/


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 13-11-2003 à 00:51:23    

ça existe, UberJar


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 13-11-2003 à 08:45:58    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed