Pas en mesure d'exécuter le fichier jar malgré CHEMIN et set CLASSPATH

Ma question est concernant, y compris les fichiers jar dans le chemin d'accès. Il dispose de 2 pièces.

1) je suis en train d'exécuter weka.jar jar fichier situé dans /home/andy/software/weka/weka.jar

De la variable de CHEMIN pointe vers ce fichier jar (c'est à dire /home/andy/software/weka/weka.jar) et donc ne CLASSPATH.

Cependant lorsque j'essaie d'exécuter le pot à l'aide de java -jar weka.jar j'obtiens un message d'erreur "Impossible d'accéder à jarfiles weka.jar".

Toutes les idées de ce qui se passe? Je suis sur Ubuntu Linux. J'ai regardé autour de dans la et il semble que je ne suis pas de faire tout ce qui est évidemment faux (puisque les deux PATH et CLASSPATH semblent être réglé correctement).

2)je voudrais être en mesure de mettre tous mes fichiers jar dans un seul répertoire et inclure ce répertoire dans mon chemin (au lieu de chaque pot individuel). Comment puis-je le faire?

Merci d'avance.

EDITION 1 -> Voici ma ligne de commande

andy@laptop:~$ export CLASSPATH=$CLASSPATH:/home/andy/research/software/weka/weka.jar
andy@laptop:~$ echo $CLASSPATH
:/home/andy/research/software/weka/weka.jar
andy@laptop:~$ java -jar weka.jar
Unable to access jarfile weka.jar
andy@laptop:~$ java weka.jar
Exception in thread "main" java.lang.NoClassDefFoundError: weka/jar
Caused by: java.lang.ClassNotFoundException: weka.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: weka.jar.  Program will exit.
andy@laptop:~$ 

EDIT 2 -> j'ai changé la variable de CHEMIN pour pointer vers le répertoire '/home/andy/recherche/logiciel/weka/' et toujours "impossible d'accéder à jarfiles erreur"

  • Essayez d'utiliser $HOME au lieu de ~?
  • Eh bien en fait j'ai utilisé le chemin d'accès complet: /home/andy/software/weka/weka.jar. Désolé à ce sujet.
  • -pot signifie que le chemin sera ignorée
  • vous ne pouvez mettre tous les fichiers jar dans un seul répertoire et inclure ce répertoire dans le chemin de classe que dans la version 6 de java et plus tard. Et vous devez utiliser le caractère générique de la notation.
  • J'ai ajouté une réponse à votre problème. Mais ce que vous faites est. Essayez d'accéder à une classe nommée weka jar. Ce que java est en train de faire : "essayer de trouver un package nommé weka, à l'intérieur de ce paquet classe nommée pot, à l'intérieur de la classe principale de la méthode"
InformationsquelleAutor user721975 | 2011-11-02