我的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
有什么问题?
答案 0 :(得分:7)
有什么问题?
您已在主jar中打包了jar依赖项。 Class-Path
的意图是在类路径中添加一个外部jar,其路径相对于主jar的位置。
标准Java类加载器不支持在jar中打包jar。如果你愿意,你可以将内罐爆炸到主罐中。 Maven可以为你做这件事。
答案 1 :(得分:1)
RXTXcomm.jar不能在jar文件中,但在它之外。阅读the tutorial。