我从命令行编译java。
我可以跑:
javac test.java -cp jarfile.jar
现在我想我可以运行(从同一个文件夹)
java test -cp jarfile.jar
我也试过
java测试
和
java 测试 -cp jarfile
我得到一个 java.lang.NoClassDefFoundError
有概念上的错误吗? 我可以假设代码是正确的,因为我可以编译它吗?
最佳答案
第一个问题是您在类路径之前指定了类名 - 所以它认为 -cp
是您的类的命令行参数之一,而不是 JVM 的参数说在哪里可以找到类(class)。
第二个问题 - 可能 - 是您没有在类路径中包含当前目录。你想要:
java -cp jarfile.jar;. test
(在 Windows 上)或
java -cp jarfile.jar:. test
(在 Unix 上)
如果你不需要除了jar文件中的类之外的任何类,当然你只需要:
java -cp jarfile.jar test
或者如果您在 jar 文件中包含了适当的 list ,您可以使用:
java -jar jarfile.jar
关于java - 我可以在编译时链接 .jar,但不能在运行时链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20017985/