J'essaie d'appeler une classe (méthode principale) à partir de la ligne de commande (Windows) avec Java.
La classe importe d’autres classes (autres pots).
Je reçois toujours une "exception de classe introuvable" d'une classe importée par mon programme principal.
Voici ce que j'ai essayé:
Ajouter un env. CLASSPATH var avec le chemin où réside la bibliothèque référencée (ne fonctionne pas)
J'ai essayé avec tous ces paramètres différents 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'endroit où réside le jar référencé)
J'ai essayé d'emballer tous les pots référencés à l'intérieur de mon pot où réside ma classe principale ...
Et avec tout cela, j'ai aussi essayé de spécifier les classes à l'intérieur du fichier Manifest avec: Class-path referenced-jar.jar
et j'ai aussi essayé Class-path lib/referenced-jar.jar
Vous pouvez l'exécuter sans le -jar
argument de ligne de commande 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 par hasard vous utilisez Linux, vous devriez utiliser ":" au lieu de ";" dans le classpath.
Si vous exécutez un fichier jar avec Java -jar
, le -classpath
argument est ignoré . Vous devez définir le chemin de classe dans le fichier manifeste de votre fichier jar, comme suit:
Class-Path: jar1-name jar2-name directory-name/jar3-name
Voir les Java: Ajout de classes au chemin de classe 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 sautez le ':
' après "Class-Path
"comme vous l'avez montré, cela ne fonctionnerait 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 sous le nom "Runnable jar" dans Eclipse. J'ai aussi des problèmes lorsque j'exporte en tant que "jar", mais je n'ai jamais de problèmes lorsque j'exporte en tant que "jar runnable".