4

我的 jar 中的文件结构是:

com/my/Main.class
META-INF/MANIFEST.MF
RXTXcomm.jar

Manifest.mf 包括:

Manifest-Version: 1.0
Main-Class: com.my.Main
Class-Path: RXTXcomm.jar

(存在空行)

当我运行我的 jar 时:java -jar my.jar

我得到:Exception in thread "main" java.lang.NoClassDefFoundError: gnu/io/SerialPortEventListener

怎么了?

4

2 回答 2

10

怎么了?

您已将 jar 依赖项打包到主 jar 中。的目的Class-Path是在类路径中添加一个外部 jar,其路径相对于主 jar 的位置。

标准 Java 类加载器不支持将 jar 打包到 jar 中。不过,如果你愿意,你可以将内罐炸成主罐。Maven 可以为您做到这一点。

于 2013-05-17T13:36:49.820 回答
2

RXTXcomm.jar 不能在 jar 文件内,而应在 jar 文件外。阅读教程

于 2013-05-17T13:38:47.247 回答