使用JarSplice命令行参数?

时间:2012-06-12 14:00:08

标签: java jar

JarSplice允许将jar文件和其他依赖项和库的聚合组合成一个可执行的jar文件。

但是,我的可执行jar需要两个命令行参数,当我调用JarSplice jar时,它们似乎根本没有被传递。

我没有在网站上看到如何做到这一点,或者甚至可能。如果有人遇到这个问题,或者找到了可能的解决方案,那就很好奇。

更新

我还应该补充一点,我的主类是在JarSplice设置中指定的,并且被成功调用。但是,如果我调用java -jar myjar.jar param1 param2,然后尝试打印param1和param2,它们就是null。

1 个答案:

答案 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

此外,还有其他(更好的)选项:

  1. 了解Maven Assembly Plugin, and it's jar-with-dependencies descriptor
  2. 在Eclipse中,您可以使用 Export => Runnable JAR =>选择将所需库提取到生成的JAR