我正在尝试使用第三方软件包(称之为'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!
答案 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