即使指定完整包路径,也找不到类

时间:2011-12-12 05:42:41

标签: java command-line compilation

我正在尝试使用第三方软件包(称之为'foo.bar')。它位于当前目录(foo.bar.jar)的jar文件中。我正在尝试运行以下超级基本的“hello-world”式程序:

package foo.bar.bla;
import foo.bar.*;
import foo.bar.somethingelse.SomeException;

public class HelloWorld implements SomethingInFooBar {

    public static void main(String[] args) throws SomeException {
        System.out.println("Hello World!");
    }
}

当我使用javac -cp foo.bar.jar HelloWorld.java时,它编译得很好。

但是当我尝试运行它时(使用java HelloWorld),我总是会遇到NoClassDefFoundError (wrong name)错误,以及/ - 分隔的包路径(some/path/like/this/HelloWorld)表面上讲的是这个类。但是当我尝试使用完整路径运行它时(如在其他问题和其他网站上提到的那样解决此问题),它仍然无效(使用命令java path.it.gave.me.HelloWorld)。

感谢您对此n00b问题的任何见解。我应该停止依赖Eclipse!

4 个答案:

答案 0 :(得分:2)

通常会发生这种情况,因为您的类路径未正确设置。尝试将类路径添加到java来电以及javac来电,例如java -cp foo.bar.jar path.to.HelloWorld

答案 1 :(得分:1)

由于未在Java BuildPath中指定正确的类源文件夹路径,有时也找不到类源 - >由于在项目需要时没有获取类文件而导致源。

这就是为什么它也是可能的。

答案 2 :(得分:0)

在终端

中尝试此行

set classpath = .

答案 3 :(得分:-1)

java -cp foo.bar.jar foo.bar.bla.HelloWorld