JarSplice允许将jar文件和其他依赖项和库的聚合组合成一个可执行的jar文件。
但是,我的可执行jar需要两个命令行参数,当我调用JarSplice jar时,它们似乎根本没有被传递。
我没有在网站上看到如何做到这一点,或者甚至可能。如果有人遇到这个问题,或者找到了可能的解决方案,那就很好奇。
更新
我还应该补充一点,我的主类是在JarSplice设置中指定的,并且被成功调用。但是,如果我调用java -jar myjar.jar param1 param2,然后尝试打印param1和param2,它们就是null。
答案 0 :(得分:3)
我很害怕,这个工具有一些严重的缺陷。
不是仅仅在 fat.jar MANIFEST.MF
中设置 Main-Class ,而是将其自己的org.ninjacave.jarsplice.core.JarSpliceLauncher
设置为主类。
然后,当您启动 fat.jar (使用java -jar fat.jar
)时,此JarSpliceLauncher
课程会使用{{1}启动新流程并且不传递任何额外的参数。
对我来说,它只是JarSplice中的错误/错误设计。
现在,解决方法是将您的实际 Main-Class 传递给ProcesBuilder
可执行文件,如下所示:
java
此外,还有其他(更好的)选项:
jar-with-dependencies
descriptor。