用jar文件编译并运行java

ojsjcaue  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(356)

这个问题在这里已经有答案了

为什么我在java中遇到noclassdeffounderror(30个答案)
三天前关门了。
我正在尝试编译一个java文件,它使用多个jar文件作为导入。我用来编译代码的命令:

javac -cp jackson-databind-2.12.1.jar:jackson-core-2.12.1.jar:jackson-annotations-2.12.1.jar TestRunner.java

结果创建了两个.class文件:testrunner.class和testrunner$1.class
然后我运行命令:

java TestRunner

但它抛出了一个错误:

Error: Unable to initialize main class TestRunner Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/type/TypeReference

我已经在javac命令中包含了所有必需的库,并用ide对其进行了测试,效果良好。我试过其他版本的Jackson图书馆,但我坚持与相同的错误。

gt0wga4j

gt0wga4j1#

在运行代码时,需要使用相同的方法指定类路径 -cp 编译时使用的参数,以及编译类所在的文件夹。
在你的cas里,这意味着 java -cp .:jackson-databind-2.12.1.jar:jackson-core-2.12.1.jar:jackson-annotations-2.12.1.jar TestRunner 指定的库不包括在 .class 文件生成,所以java仍然需要它们来理解如何调用不是来自类文件的代码。

相关问题