罐子接头 http://ninjacave.com/jarsplice允许将 jar 文件以及其他依赖项和库聚合到一个可执行 jar 文件中。
但是,我的可执行 jar 需要两个命令行参数,当我调用 JarSplice jar 时,这两个参数似乎根本没有传递。
我在网站上没有看到任何关于如何做到这一点的内容,或者是否有可能。好奇是否有人遇到过这个问题,或者找到了可能的解决方案。
Update
我还应该补充一点,我的主类是在 JarSplice 设置中指定的,并且被成功调用。但是,如果我调用 java -jar myjar.jar param1 param2,然后尝试打印 param1 和 param2,它们将为空。
恐怕这个工具有一些严重的缺陷。
而不是仅仅设置你的主级 in the fat.jar MANIFEST.MF
,它设置了自己的org.ninjacave.jarsplice.core.JarSpliceLauncher
as a 主级.
然后,当你开始你的fat.jar (using java -jar fat.jar
) this JarSpliceLauncher
课程开始新流程用一个ProcesBuilder
并且不向其传递任何额外的参数。
对我来说,这只是一个错误/糟糕的设计罐子接头 http://ninjacave.com/jarsplice.
现在,解决方法是传递您的实际主级 to java
可执行文件如下:
java -cp fat.jar org.myawesomeapp.MyAwesomeClass [params....]
另外,还有其他的(better) 选项:
- 阅读Maven 组装插件,它是jar-with-dependencies描述符 http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with-dependencies.
- 在 Eclipse 中,您可以使用Export => 可运行的 JAR=> 选择将所需的库提取到生成的 JAR 中.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)