如何解决用jar文件编译和运行java
我正在尝试编译一个使用多个 jar 文件作为导入的 java 文件。 我用来编译代码的命令:
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 库的其他版本,但还是遇到了同样的错误。
解决方法
您需要在运行代码时指定类路径,使用与编译时相同的 -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 仍然需要它们来了解如何调用不是来自您的类文件的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。