我有一个引用Jar文件的Java程序。
Jar文件与.class文件存在于同一目录中但当我尝试从控制台运行程序时,我得到NoClassDefFound错误: - (
或者它从Eclipse运行Ok。
为什么?
答案 0 :(得分:7)
java
程序不会自动在其类路径中包含JAR文件。您可以通过-classpath
选项将JAR文件添加到其类路径中。例如:
java -classpath .;yourJarFile.jar your.MainClass
每当运行程序时,Eclipse都会自动添加JAR文件。
注意:-classpath
选项在Windows上运行时需要分号(;
),否则需要冒号(:
)。
答案 1 :(得分:3)
JAR文件不会自动包含在类路径中。您可以向包含要执行的main方法的to JAR文件添加Class-Path
条目和Main-Class
条目。然后你可以这样执行你的代码:
java -jar yourJarFile.jar
有关详细信息,请参阅JAR File Specification。
或在命令行中指定类路径:
java -classpath lib1.jar:lib2.jar:yourJarFile.jar your.MainClass