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

mike220684 Messages postés 12 Statut Membre -  
 NewDev -
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 Statut Membre 2
 
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 373 Statut Membre 27
 
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 Statut Membre 1
 
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
NewDev
 
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