[Java] Exécution d'un jar avec jars externes

Fermé
mike220684 Messages postés 12 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 16 juillet 2007 - 27 juin 2007 à 15:54
 NewDev - 12 avril 2011 à 14:08
Bonjour.

Je cherche à exécuter mon application java sous forme de jar en ligne de commande. Seulement il utilise des librairies externes (en .jar). J'essaye de le lancer en ligne de commande, mais il me dit qu'il ne trouve pas une classe (NoClassDefFound error) qui est dans un jar externe.

J'ai :
MonProjet.jar
JarExterne.jar
JarExterne2.jar

Quel est la commande à taper pour prendre en compte tous les jar ?

3 réponses

mike220684 Messages postés 12 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 16 juillet 2007 2
27 juin 2007 à 17:01
J'ai essayé des trucs du genre :
java -jar MonProjet.jar -classpath JarExterne.jar;JarExterne2.jar mais ça ne marche pas...
2
BadGuitarist Messages postés 367 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
Modifié par BadGuitarist le 4/05/2010 à 19:52
Bonsoir mike220684,

Si tu veux lancer ton projet via une fenêtre Console (DOS ou shell) :
  java -classpath .;MonProjet.jar;JarExterne.jar;JarExterne2.jar ClasseContenantMain    


Remarques :
1- je ne fais que confirmer une des solutions (la 2ième) de Starbuster
2- dans le classpath, n'oublies pas le ".;" cela permet d'inclure dans le "chemin des classes" le répertoire courant.
0
Starbuster Messages postés 1 Date d'inscription mardi 4 mai 2010 Statut Membre Dernière intervention 4 mai 2010 1
4 mai 2010 à 18:59
Réponse tardive, mais si ça peut aider quelqu'un d'autre :).

Ton projet jar que tu exécutes ne peut pas trouver les jars externes car il ne se sert pas du classpath. A l'exécution, un jar ne peut trouver que les .jar qu'il y a dans ton projet jar via le manifest.

Deux possibilités :
* intégrer les jars externes dans ton jar via le manifest
* rajouter ton projet jar à ton classpath et lancer ta classe où il y a un main directement avec "java taclasse" (mais ce n'est pas trop beau, car entre autres, cela suppose que tu sais où est le(s) main(s))
1
Bonjour,
J'ai le même problème que cité ci-dessus, StartBuster peux tu me dire comment faire ta première solution à savoir "intégrer les jars externes dans ton jar via le manifest" car dans mon jar que je génère avec Ant il y a le jar de la librairie externe à l'intérieur de mon jar mais ca ne fonctionne pas. Peux tu me montrer un exemple de manifest, stp.

Cdt
0