[java] un .jar dans une archive jar ET jar + classpath [Résolu]

un .jar dans une archive jar ET jar + classpath [Résolu] [java] - Java - Programmation

Marsh Posté le 01-07-2002 à 18:15:42    

Après avoir bien feuilleté les autres topics sur les jar, et fait moulte tentatives, ça marche toujours pas.
 
le pb:
J'ai un jar que j'ai récupéré qui s'apelle kunststoff.jar (tiens tiens ;-), j'ai ma classe qui est dans un package et qui utilise ce jar. Jusque là pas de pb, ça marche nickel !
 
Maintenant, je veux jarrer le tout !
ben je fais mon manifest :
 
Manifest-Version: 1.0
Created-By: 1.4.0(Sun Microsystem Inc.)
Main-Class: MonPackage.MaClasse
 
et hop :
 
jar cmf manifest.mft MonJar.jar ./MonLogo.png -C ./tools/ kunststoff.jar -C ./class/ .
 
ok nickel.
 
java -jar MonJar.jar
Exception in thread "main" java.lang.NoClassDefFoundError: com/incors/plaf/kunststoff/KunststoffLookAndFeel
 
Bing!
 
je vérifie mon jar :
$jar tf batsim.jar
META-INF/
META-INF/MANIFEST.MF
MonLogo.png
kunststoff.jar
MonPackage/MaClasse
 
Alors ?
 
P.S. : c'est mon premier jar ...  :(


Message édité par bobuse le 02-07-2002 à 11:12:02
Reply

Marsh Posté le 01-07-2002 à 18:15:42   

Reply

Marsh Posté le 01-07-2002 à 18:20:00    

Bon alors, si j'enlève la ligne ou je me sers de kunststoff.jar, ça marche nickel ... bon mon logo s'affiche pas, mais ça je devrai trouver dans les autres topics je pense ...

Reply

Marsh Posté le 01-07-2002 à 18:39:27    

Après renommage du topic :
 
peut-on spécifier un classpath quand on lance un jar ?
 
paske du coup j'ai essayé :
java -jar -cp ./tools/kunststoff.jar MonJar.jar
Exception in thread "main" java.lang.NoClassDefFoundError: com/incors/plaf/kunststoff/KunststoffLookAndFeel
 
Alors que ça, ça marche :
java -cp ./tools/kunststoff.jar:./class MonPackage/MaClasse
 
 :(

Reply

Marsh Posté le 01-07-2002 à 20:31:03    

Tu devrais déjà créer ton propre jar avec tes classes
 
Ensuite dans le manifest de ton jar tu ajoute cette ligne:  
 
Class-Path: kunststoff.jar (en supposant que kunststoff.jar est dans le même répertoire que ton jar)
 
Pour lancer ton application tu fais:
 
java -jar monJar.jar ou tu double clique sur ton fichier monJar.jar (si tu es sous Windows)
 
 

Reply

Marsh Posté le 01-07-2002 à 20:38:08    

Nickel, merci!
 
Et pour accéder à mon image qui est dans mon jar, tu peux me l'expliquer en 2 lignes, ou fodra que je cherches ... :sarcastic:

Reply

Marsh Posté le 01-07-2002 à 22:00:52    

utilse getResource, super puissant :)

Reply

Marsh Posté le 01-07-2002 à 22:56:14    

bobuse a écrit a écrit :

Nickel, merci!
 
Et pour accéder à mon image qui est dans mon jar, tu peux me l'expliquer en 2 lignes, ou fodra que je cherches ... :sarcastic:




 
il correspond a quoi ton look and feel?
j aime bien els LAF alors si c gratos jve bien voir a quoi il ressemble...

Reply

Marsh Posté le 01-07-2002 à 23:04:14    

il est sous license GPL je crois.

Reply

Marsh Posté le 01-07-2002 à 23:10:46    

Reply

Marsh Posté le 01-07-2002 à 23:24:24    

Pour accéder à ton image tu fais:
 
getClass().getResource(monImage.jpg);

Reply

Marsh Posté le 01-07-2002 à 23:24:24   

Reply

Marsh Posté le 02-07-2002 à 08:09:14    

--greg-- a écrit a écrit :

http://www.incors.org/




 
merci

Reply

Marsh Posté le 02-07-2002 à 09:12:50    

pour le jar, nickel ça marche, j'ai vérifié!
 
en revanche l'image ... je fais ça :
ImageIcon Logo=new ImageIcon(this.getClass().getResource("logo.png" ));
 
j'ai ça
$ jar tf batsim.jar
META-INF/
META-INF/MANIFEST.MF
logo.png
...
 
et ça me donne ...  :sweat:  
Exception in thread "main" java.lang.NullPointerException
        at javax.swing.ImageIcon.<init>(ImageIcon.java:138)
        at batsim.BatSimFrame.<init>(BatSimFrame.java:226)
        at batsim.BatSim.main(BatSim.java:114)
ça !

Reply

Marsh Posté le 02-07-2002 à 09:48:10    

Code :
  1. getResource("/logo.png" );


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-07-2002 à 10:10:30    

DarkLord a écrit a écrit :

Code :
  1. getResource("/logo.png" );






 :jap:  
 
En fait du spécifie l'adresse par rapport à la racine du jar. Bon à savoir! Merci

Reply

Marsh Posté le 02-07-2002 à 10:13:57    

et donc pour finir, c'est pas possible de mettre un jar dans l'archive jar ?

Reply

Marsh Posté le 02-07-2002 à 10:44:08    

bin si pq? Mais bon évidemment si il est vide ...  :sarcastic:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-07-2002 à 10:44:55    

ceci dit je ferais d'abord un getResource et je testerai ensuite si il est null ou pas. Parce que bon c'est un peu crade et pas du tout défensif comme facon de programmer ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-07-2002 à 11:02:22    

bon en fait ce que j'ai fait, et je pense que c'est ce qu'il fallait faire, c'est d'extraire mon kunststoff.jar et de mettre les .class dans mon jar  :D

Reply

Marsh Posté le 02-07-2002 à 11:11:30    

du coup c'est rulezzz, un seule fichier pour toute mon appli. Trop fort le jar.
 :love:  
Je voulais signaler que sous Linux aussi, on lance les jar avec un clic de souris  :D  
 
merci à tous !
 
 :hello:

Reply

Marsh Posté le 02-07-2002 à 11:17:41    

warning -> Vérifie les licenses si le jar ne t'appartient pas. Générallement, meme en LGPL on n'a pas le droit de toucher au jar ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-07-2002 à 11:29:22    

ben , et si je met le jar en plus du repertoire extrait du jar ? Ca marche non ? Je suis allé lire en diagonale la license LGPL, et je suis pas sûr d'avoir tout compris, mais bon ...
 
De toutes façons, l'appli n'est pas à usage commercial !
 
Là je sais pas, ya pas un expert en droit info ki connaitrait bien LGPL dans les parages par hasard ? :??:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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