没有任何类名的NoClassDefFoundError

Sea*_*ull 10 java ant noclassdeffounderror

我正在尝试从ant运行java任务.我正在尝试运行"org.apache.tools.ant.launch.Launcher"类.我继续获取"NoClassDefFoundError"而没有指定任何类名.我也得到一个"ClassNotFoundException"以及显示消息"无法找到主类:.程序将退出".这是错误的片段

 [java] Exception in thread "main" java.lang.NoClassDefFoundError: 
 [java] Caused by: java.lang.ClassNotFoundException: 
 [java]  at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
 [java]  at java.security.AccessController.doPrivileged(Native Method)
 [java]  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 [java]  at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 [java]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 [java]  at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
 [java]  at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
 [java] Could not find the main class: .  Program will exit.
 [java] Java Result: 1
Run Code Online (Sandbox Code Playgroud)

现在我试图从一个ant jar运行一个ant类,并使用"classpathref"属性指定此类文件所在的类路径,但是我仍然收到此消息.我检查了ant jar以检查Manifest并正确指定了"main"类(它是"org.apache.tools.ant.launch.Launcher").我已经用尽了所有的资源.请帮忙 !!!

ps:我的环境是Ubuntu 9.04上的Eclipse

kri*_*tzi 5

很可能你的类路径配置错误.

CLASSPATH至少应包括:

  • ant.jar和ant-launcher.jar
  • XML解析器的jar/classes
  • JDK所需的jar/zip文件

(来自蚂蚁手册)

您似乎也在当前目录中重新启动ant(执行相同的build.xml).也许你想要设置"dir"属性.


akf*_*akf 0

从这一行:

[java] Could not find the main class: .  Program will exit.
Run Code Online (Sandbox Code Playgroud)

看起来好像您对 java.exe 的调用正在找到.它需要类名的位置。也许您试图在命令行上指示类路径,但忽略了用-cp-classpath标志作为前缀。