2009-06-06 9 views
0

Je mets "stax-utils.jar" dans le répertoire des extensions ([JAVA_HOME]/jre/lib/ext), mais la tâche java de ant peut « t trouver, donnant:La tâche java de ant ne trouve pas de jar dans le répertoire jre/lib/ext

java.lang.NoClassDefFoundError: javanet/staxutils/IndentingXMLStreamWriter 

Étrangement, cela fonctionne pour la compilation: ant javac tâche peut trouver. Le problème est seulement avec le code en cours d'exécution, avec la tâche de fourmi java ...

  • Si j'utilise Java à partir de la ligne de commande, le pot est trouvé et je peux utiliser des classes de celui-ci.

  • Si je donne explicitement le chemin de classe à ce jar spécifique dans le répertoire de l'extension, cela fonctionne également.

(j'ai vu ce problème avant, avec l'une des bibliothèques XML.)

+0

Est-ce javanet.staxutils ... ou java.net.staxutils ..? – Ram

+0

Le premier (et cela fonctionne pour la compilation, et depuis la ligne de commande, suggérant qu'il accède avec succès au pot et aux classes). http://www.java2s.com/Open-Source/Java-Document/XML/stax-utils/javanet/staxutils/IndentingXMLStreamWriter.java.htm – 13ren

Répondre

0

essayez de l'ajouter à ANT_HOME/lib

+0

Non, cela n'a pas fonctionné. – 13ren

0

Êtes-vous certain que vous utilisez la machine virtuelle Java correspondant à votre JAVA_HOME?

+0

oui. $ {java.home} donne le jre qui contient le fichier lib/ext/staxutils.jar – 13ren

+0

en fait ... vous semblez avoir raison ... J'ai fait un peu plus de chasse, et $ {java.vm. version} donne 10.0-b19 ... mais la ligne de commande java -version donne 1.6.0_04-b12 Ce qui est bizarre, c'est que je n'ai pas la build 10 installée (sauf si eclipse ou netbeans l'ont installé quelque part quand je les ai essayés). – 13ren

+0

Correction: 10.0-b19 provient de "Java HotSpot (TM) Client VM (build 10.0-b19, mode mixte, partage)", et j'ai confirmé que c'est celui de JAVA_HOME (en allant dans le répertoire, et en tapant "./java -version" – 13ren

0

Il est trop tard .. Mais je me demandais la cause de cette ...

Comme il est lié à classloading par la machine virtuelle Java ... Et cette charge de classe est liée à CLASSPATH .. Je pense que la CLASSPATH n'avait pas été réglé causé le problème depuis longtemps ...

Ne sait pas au présent.

Questions connexes