ClassNotFoundException avec ant java de la tâche et du chemin de classe
Je suis en train de compiler et d'exécuter une simple classe java dans eclipse. La compilation des tâches fonctionne très bien, et depuis je n'ai pas spécifier un dossier de destination des fichiers sont dans le même répertoire que la source. Ce qui est bien, pour le moment tout ce que je besoin est de savoir comment je peux utiliser la classe avec la méthode main ().
J'ai essayé d'utiliser le nom complet de la classe (avec le nom du package, etc) et celui de la classe seul, mais toujours je reçois un java.lang.ClassNotFoundException
Buildfile: C:\Users....\build.xml
run:
[java] java.lang.NoClassDefFoundError: code/control/MyClass
[java] Caused by: java.lang.ClassNotFoundException: code.control.MyClass
[java] at java.net.URLClassLoader$1.run(Unknown Source)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClass(Unknown Source)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClassInternal(Unknown Source)
[java] Could not find the main class: code.control.MyClass. Program will exit.
[java] Exception in thread "main"
[java] Java Result: 1
compile:
default:
BUILD SUCCESSFUL
Total time: 234 milliseconds
Ci-dessous, sont les cibles prises à partir de mon build.xml fichier:
<target name="default" depends="compile" description="learn">
</target>
<target name="compile" depends="run">
<javac srcdir="src/" />
</target>
<target name="run">
<java classname="code.control.MyClass" fork="true"/>
</target>
Je ne peux pas comprendre pourquoi la classe n'est pas trouvé. MyClass contient la méthode main() et depuis je ne spécifiez pas de chemin de classe, il faut regarder le répertoire courant, qui est la src/droite?
Le répertoire de développement est l'habitude de l'éclipse de la structure du fichier:
nomduprojet/src/code/contrôle/Maclasse
Si c'est un problème de classpath comment pourrais-je le résoudre? J'ai toujours eu de problème à saisir le concept de "mettre sur votre chemin de classe" ... Si quelqu'un pouvait fournir un peu d'explication avec le chemin de classe dans la fourmi contexte, je serais très reconnaissante.
Merci pour toute aide sur ce. La version de ant est 1.7.0
Avez-vous remarqué que votre cible "compiler" dépend de "run"? Ça va être appelée avant la compilation... corrigé: <target name="compile"> (...) </target> <nom de la cible="run" depends="compiler"> (...) </target>
OriginalL'auteur denchr | 2009-07-15
Vous devez vous connecter pour publier un commentaire.
La classpath est là la Java runtime recherche pour vos .les fichiers de classe, semblable à la façon dont votre système d'exploitation utilise la variable d'environnement PATH pour trouver les fichiers exécutables.
Essayer dans votre script de construction:
Il y a un HelloWorld version de ant qui marche à travers la construction d'un programme Java avec ant.
Lorsque vous utilisez "java -version", c'est à l'aide de la variable d'environnement PATH pour trouver l'exécutable java. Si vous avez besoin de mettre quelque chose sur le chemin de la classe, il suffit de copier le .fichier de classe dans l'un des répertoires spécifiés par classpath. Vous aurez besoin de tous les répertoires, si vous copiez quelque chose dans un paquet.
OriginalL'auteur seth
vous devez inclure classpath, par exemple
où ${bin} est votre dossier de sortie.
OriginalL'auteur janetsmith
changer votre build.xml comme ci-dessous et essayer:
OriginalL'auteur sravan