Java: comment importer un fichier JAR en ligne de commande

J’essaie d’appeler une classe (méthode principale) depuis la ligne de commande (Windows) avec Java.
La classe importe d’autres classes (autres jars).

J’obtiens toujours une “classe exception non trouvée” d’une classe que mon programme principal importe.

Voici ce que j’ai essayé:

  • Ajouter un env CLASSPATH var avec le chemin où réside la lib référencée (ne fonctionne pas)

  • J’ai essayé avec tous ces différents parameters en appelant ” java -jar myjar.jar ” depuis la ligne de commande: ” -classpath lib/ “, ” -classpath ./lib/ “, ” -classpath lib “, ” -cp lib/* ” , ” -cp lib/\* “, ” -classpath lib/referenced-class.jar “, ” -classpath ./lib/referenced-class.jar ” (lib est l’emplacement du -classpath ./lib/referenced-class.jar jar référencé)

  • J’ai essayé d’emballer tout le pot référencé dans mon pot où réside ma classe principale …

  • Et avec tout ça, j’ai aussi essayé de spécifier les classes dans le fichier Manifest avec: Class-path referenced-jar.jar et j’ai aussi essayé le Class-path lib/referenced-jar.jar

Vous pouvez l’exécuter sans l’argument de ligne de commande -jar si vous connaissez le nom de la classe principale que vous souhaitez exécuter:

 java -classpath .;myjar.jar;lib/referenced-class.jar my.package.MainClass 

Si vous utilisez peut-être Linux, vous devriez utiliser “:” au lieu de “;” dans le classpath.

Si vous exécutez un fichier jar avec java -jar , l’argument -classpath est ignoré . Vous devez définir le classpath dans le fichier manifeste de votre jar, comme ceci:

Class-Path: jar1-name jar2-name directory-name/jar3-name

Voir les didacticiels Java: Ajouter des classes au Classpath du fichier JAR .

Edit: Je vois que vous avez déjà essayé de définir le chemin de classe dans le manifeste, mais êtes-vous sûr d’avoir utilisé la syntaxe correcte? Si vous ignorez le ” : ” après ” Class-Path ” comme vous l’avez montré, cela ne fonctionnera pas.

essayer

 java -cp "your_jar.jar:lib/referenced_jar.jar" com.your.main.Main 

Si vous êtes sur Windows, vous devriez utiliser ; au lieu de :

vous pouvez essayer d’exporter en tant que “Runnable jar” dans eclipse. J’ai aussi des problèmes, quand j’exporte en tant que “jar”, mais je n’ai jamais de problèmes quand j’exporte en tant que “Bocal Runnable”.