我可以在编译时链接.jar,但不能在运行时链接.jar

时间:2013-11-16 11:41:38

标签: java command-line

我从命令行编译java。

我可以跑:

javac test.java -cp jarfile.jar

现在我以为我可以跑(来自同一个文件夹)

java test -cp jarfile.jar

我也试过

java test

java test -cp jarfile

我得到了一个java.lang.NoClassDefFoundError

有任何概念上的错误吗? 我可以假设代码是正确的,因为我可以编译它吗?

1 个答案:

答案 0 :(得分:3)

第一个问题是你在类路径之前指定了类名 - 所以它认为-cp是你的类的命令行参数之一,而不是JVM的一个参数说明在哪里找到课程。

第二个问题 - 可能 - 是您没有在类路径中包含当前目录。你想要:

java -cp jarfile.jar;. test

(在Windows上)或

java -cp jarfile.jar:. test

(在Unix上)

如果您不需要除jar文件中的类以外的任何类,当然,您只需要:

java -cp jarfile.jar test

或者,如果您在jar文件中包含了适当的清单,则可以使用:

java -jar jarfile.jar
相关问题