清单中的ClassPath不起作用

Cos*_*dix 3 java manifest.mf classpath

我的jar文件的结构是:

com/my/Main.class
META-INF/MANIFEST.MF
RXTXcomm.jar
Run Code Online (Sandbox Code Playgroud)

Manifest.mf包括:

Manifest-Version: 1.0
Main-Class: com.my.Main
Class-Path: RXTXcomm.jar
Run Code Online (Sandbox Code Playgroud)

(空行)

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

我明白了: Exception in thread "main" java.lang.NoClassDefFoundError: gnu/io/SerialPortEventListener

怎么了?

Mar*_*nik 9

怎么了?

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

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