又一个Java类路径问题

时间:2010-04-25 16:28:34

标签: java javac noclassdeffounderror

我一直在Netbeans的一个项目上工作。现在我想提交它并允许标记用脚本编译它。但是,当我尝试通过命令行运行时,我得到NoClassDefFoundError。即使手动将类路径设置为当前目录。

javac Main.java工作正常

然后调用java -classpath。主要给出:

java -classpath . Main
Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: pro
ject2/Main)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

2 个答案:

答案 0 :(得分:5)

您似乎有一个名为project2的包。如果这是故意的,则应在命令行上使用project2.Main作为类名,并且类路径包含project2目录的父级。如果不是故意的,请删除或替换源文件顶部的package project2;

答案 1 :(得分:1)

此处的关键字是堆栈跟踪中的“错误名称”。您可以谷歌搜索并发现包裹存在问题。