所以我尝试使用以下类似的参数从命令行启动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)。
这似乎适合其他人,所以我不确定为什么它不起作用。
答案 0 :(得分:3)
首先,-Djava.library.path=/something
告诉JVM在哪里可以找到本机库 - 即DLL。它与查找jar
文件无关,因此如果您使用该标志来查找jar
文件,那么这就是问题。
否则,这很好。您需要确保所有这些路径都正确,并且包含net.test.Test
的jar文件确实包含相关类,并且在jar文件中Test.class
文件位于test
中net
目录中的目录。
正如Rup在评论中指出的那样,如果您当前目录中有任何需要提取的类,则需要将当前目录“。”的条目添加到{{1} }参数。