从命令行运行时NoClassDefFoundError

时间:2010-07-27 13:23:54

标签: java eclipse jar classpath

我想在我的Java程序中使用外部库(例如Google的Guava)。我使用Eclipse,所以我下载了Guava的jar(和源代码),然后跟着Adding a Java library to the project classpath将它添加到Eclipse和我项目的构建路径中。

这很好用:我可以从Eclipse和从Eclipse导出的runnable jar运行程序,但是当我尝试直接从bin/目录运行时出现错误,就像我以前一样:

  

线程“main”中的异常
  java.lang.NoClassDefFoundError:com / google / common / base / Joiner

我该怎么办?

4 个答案:

答案 0 :(得分:1)

如果您直接从项目bin目录运行类文件,则可能需要手动指定类路径: C:> java -classpath C:\java\MyClasses;C:\java\OtherClasses MyClassHere

答案 1 :(得分:1)

你必须告诉Java在哪里找到这个库:

java -cp <path-to-lib-jar>;myJar.jar my.package.MyMainClass

或者如果您想使用jar文件,可以在MANIFEST中设置库路径 检查here以获得解释。

答案 2 :(得分:0)

要在控制台上尽可能精确地运行程序,当您从Eclipse运行它时,需要从项目的根目录(而不是bin)运行它,并且不要忘记提及类路径({{ 3}})

因此,例如在root上你将运行:

  

java -classpath lib / guava.jar; bin packageName.className

答案 3 :(得分:0)

您是否尝试过java -cp guava.jar ...