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

标签 java command-line

我从命令行编译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/

相关文章:

c++ - 如何判断 Qt (C/C++) 程序中是否正在运行屏幕保护程序? (微软 Windows )

java - 如何在 Java 中插入动画 gif

java - 从txt文件中读取数组?

command-line - 将参数传递给 winscp.com 命令行

video - 使用 FFMPEG 将帧插入视频

c++ - 如何阻止 QApplication 出现在 Dock 中?

python - 来自 python 的 Linux 命令行指令

java - 使用 Play 框架进行 Junit 测试

java - AVL树,java,继任者,前任

java - 如何修复 java.lang.UnsatisfiedLinkError : com. badlogic.gdx.physicals.box2d.PolygonShape.newPolygonShape()?