Jar Classpath et Manifest - Java - Programmation
Marsh Posté le 09-06-2006 à 11:49:48
il ne veut pas et me dit 'ligne trop longue'
Marsh Posté le 09-06-2006 à 12:02:10
voilà le manifest de docman, je m'en étais inspirer quand j'ai voulu faire un manifest pour une appli perso :
Code :
|
tu utilises un ide, ou tu fais ça à la main ? peut-être qu'un ide (genre eclipse) te formaterai ton manifest...
Marsh Posté le 09-06-2006 à 13:21:45
ou peut-être que lire la doc aiderait plus que d'essayer au hasard
fluminis > ton jar principal (entree.jar?) se trouve ou par rapport aux autres? et tu lances ton appli depuis où?
Marsh Posté le 09-06-2006 à 19:48:03
the real moins moins a écrit : ou peut-être que lire la doc aiderait plus que d'essayer au hasard |
J'essaye de :
soit faire un jar contenant tous les autres jar dont il a besoin. (suivant les sites que je lis sur le web, ca semble possible pour certains impossible pour d'autres, qu'en est-il ?)
soit faire un jar contenant un manifest specifiant ou trouver tous les autres jar dont il a besoin.
Code :
|
et je lance mon appli depuis le repertoire racine (ou se trouve entree.jar)
Je travaille sous WSAD 5.1, et quelque soit les options que je coche lors de l'exportation de mon projet en jar, le manifeste cree contient au maximum la Main-Class mais pas le class path (sauf si bien sur je lui specifie un fichier Manifest de mon cru).
Marsh Posté le 09-06-2006 à 19:49:38
fluminis a écrit : il ne veut pas et me dit 'ligne trop longue' |
qui ça "il" ?
Marsh Posté le 09-06-2006 à 19:54:33
je n'ai plus le message exact en tete, j'avais ce message lors de l'execution de la commande :
java -jar entree.jar parametre de mon appli
il disait : ...ReadAttribute Line too long
Sinon, l'erreur la plus courrante est : NoClassDefFound qui survient dès que je tente d'acceder à une classe de mon autre jar dependance.jar
Marsh Posté le 09-06-2006 à 20:07:55
forcément, si ton classpath n'est pas défini
Marsh Posté le 09-06-2006 à 20:10:24
et le message d'erreur dans google, t'as essayé ... ?
Marsh Posté le 09-06-2006 à 20:11:39
le seul hic, etant que je ne veux pas avoir a specifier de classpath (variable $CLASSPATH), je veux utiliser le manifest a l'interieur de mon archive jar... mais ca ne marche pas
Marsh Posté le 09-06-2006 à 20:13:31
la recherche google n'a rien donnée ni sur le message d'erreur, ni sur la creation d'archive jar ni sur la creation de manifest.
Marsh Posté le 09-06-2006 à 20:24:35
fluminis a écrit : la recherche google n'a rien donnée ni sur le message d'erreur, ni sur la creation d'archive jar ni sur la creation de manifest. |
euh, t'es gentil mais un peu con, ou bien?
http://www.google.com/search?q=jar%20manifest
Marsh Posté le 09-06-2006 à 20:25:15
fluminis a écrit : le seul hic, etant que je ne veux pas avoir a specifier de classpath (variable $CLASSPATH), je veux utiliser le manifest a l'interieur de mon archive jar... mais ca ne marche pas |
et la directive Class-Path: dans ton manifest, tu crois que ça sert à quoi ?
Marsh Posté le 09-06-2006 à 20:46:12
Bon je vais rester calme... merci pour le "t'es gentil mais un peu con"
quand je dis que mes recherches google n'ont pas été fructueuses, c'est que j'y ai déjà passé deux jours avant de poster ma question ici car je tente de lire les doc avant de questionner à tout va.
Et les RTFM généralement j'en distribue pas mal sur les forum...
Quand je dis pas frutueuse, j'entends 'les tonnes de pages lues' n'ont pas resolues mon probleme.
Donc oui, la directive Class-Path ça doit pas etre fait pour rien, oui j'ai mis ca dans mon archive jar, oui j'ai lue les docs
Mais non ça ne fonctionne pas... donc je fais surement quelquechose de travers mais je n'arrive pas a resoudre mon probleme seul d'où ma question sur ce forum.
Marsh Posté le 09-06-2006 à 21:00:49
et si tu ne mets pas *toutes* tes dépendences ? (je suppose que tu en as beaucoup, d'ou ton erreur de ligne trop longue) tu auras forcément des NoClassDefFound, mais essaie de mettre dans ton manifest/Class-Path: les premieres dependences dont ton appli à besoin pour voir s'il trouve au moins celles-là
Marsh Posté le 11-06-2006 à 12:53:51
tu fais comment pour créer ton manifest? A la main?
Parce que bon y a des outils qui gèrent ça pour toi hein (ant/maven)
Marsh Posté le 11-06-2006 à 13:02:04
hum... helas je ne connais ant que de nom, je n'ai jamais utilisé, donc pour le faire à la main, bah blocnote + winrar pour metre le fichier dans le jar... c'est pas forcement la meilleur des solution je vous l'accorde mais je n'ai pas ant sous la main au taf (et acces au net tres limité : pas de téléchargement possible)
Marsh Posté le 11-06-2006 à 16:19:57
darklord a écrit : tu fais comment pour créer ton manifest? A la main? |
squoi le rapport avec la choucroute? évidemment qu'il a interet à le faire à la main, pour comprendre ce qu'il fait... mlc toi meme va
Marsh Posté le 11-06-2006 à 16:20:33
fluminis a écrit : hum... helas je ne connais ant que de nom, je n'ai jamais utilisé, donc pour le faire à la main, bah blocnote + winrar pour metre le fichier dans le jar... c'est pas forcement la meilleur des solution je vous l'accorde mais je n'ai pas ant sous la main au taf (et acces au net tres limité : pas de téléchargement possible) |
euh, oui, pour créer ton jar, t'utilise la commande jar, hein, steplé...
Marsh Posté le 11-06-2006 à 16:50:05
helas les dieux ne sont pas avec moi, je n'ai que le jre d'installé, et pas le jdk donc pas de commande jar pour moi, je passe par WSAD qui génère le jar pour moi mais je n'ai pas moyen de le faire en ligne de commande en spécifiant moi meme mes options...
Marsh Posté le 11-06-2006 à 16:52:37
ReplyMarsh Posté le 11-06-2006 à 17:46:08
pour traduire la pensé de trmm, si t'as wsad, t'as un jdk (le jdk d'ibm).
et plus généralement, si tu compiles, t'as un jdk.
Sinon, WSAD te propose de préciser le manifest à inclure à ton jar lors de l'export.
Marsh Posté le 08-06-2006 à 15:48:58
Bonjour,
Je suis face à un probleme que je n'arrive pas a resoudre :
je cree un fichier jar "entree.jar"
Pour fonctionner celui ci necessite les classes dependance.jar (entre autre)
Pour lancer mon appli je fais :
Ca fonctionne, mais je voudrais eviter de specifier un classpath de 15km de long.
J'ai donc essayé de faire un fichier META-INF/MANIFEST.MF dans mon jar mais rien n'y fait.
On dirait que je fichier manifest ne sert a rien.
et je lance mon appli :
j'ai essayé de mettre les jar dans le repertoire lib a l'exterieur du jar => ca marche pas, je les ai mis a l'interieur ca ne marche pas plus.
Auriez-vous une idée ?
merci d'avance
Fluminis
---------------
http://poemes.iceteapeche.com - http://www.simuland.net