1

所以我试图使用类似于这些的参数从命令行启动一个 jar:

java -cp "path/test.jar;path/lib.jar" -Djava.library.path="path/another_lib.jar" net.test.Test

(net.test.Test 是主类)这给了我一个 NoClassDefFoundError 异常(对于 net/test/Test)。

这对其他人来说似乎很好,所以我不确定为什么它不起作用。

4

1 回答 1

3

首先,-Djava.library.path=/something告诉JVM 在哪里可以找到本地库——即DLL。它与查找文件无关jar,因此如果您使用该标志来查找jar文件,那将是一个问题。

否则,这很好。您需要确保所有这些路径都是正确的,并且包含的​​ jar 文件net.test.Test确实包含有问题的类,并且在 jar 文件中,该Test.class文件位于test目录中的net目录中。

正如 Rup 在评论中指出的那样,如果当前目录中有任何需要选择的类,则需要将当前目录“.”的条目添加到-cp参数中。

于 2012-06-11T00:06:54.127 回答