清单中的ClassPath不起作用

时间:2013-05-17 13:29:42

标签: java classpath manifest.mf

我的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

有什么问题?

2 个答案:

答案 0 :(得分:7)

  

有什么问题?

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

标准Java类加载器不支持在jar中打包jar。如果你愿意,你可以将内罐爆炸到主罐中。 Maven可以为你做这件事。

答案 1 :(得分:1)

RXTXcomm.jar不能在jar文件中,但在它之外。阅读the tutorial