Launch4J exe仍然需要jar文件

时间:2013-05-06 03:23:48

标签: launch4j

Launch4j似乎很容易设置但是在生成exe之后它不会从另一个位置运行。

用于创建启动器的jar文件仍然需要与exe所在的文件夹相同。

我以为它会在exe中包装jar并且可以从任何地方运行它?我以前用JSmooth做过这个并且运行良好。但是Windows 7不再支持JSmooth。

也找不到任何适当的文档。

这里出了什么问题。

谢谢, 尚卡尔。

2 个答案:

答案 0 :(得分:0)

您的简单方案适合我。我需要填写的唯一选项是输出文件,Jar和Min JRE版本。其他所有内容都是默认设置。

将所有外部库打包到JAR而不是生成的JAR旁边的文件夹中非常重要。要实现这一点,请在导出可运行的JAR时选择Eclipse中的“将所需库提取到生成的JAR”选项。

答案 1 :(得分:0)

如果我们讨论的是包含主类的JAR,那么这是可配置的:http://launch4j.sourceforge.net/docs.html#Configuration_file 您想要设置的是 dontWrapJar true,但这是默认值,因此如果不在EXE中,您必须更改某些内容。当切换此布尔值时,可以清楚地看到大小差异(例如,在我的情况下,它没有JAR的40K和包含16K JAR的56,在Total Commander中我也可以使用Ctrl + PgDn像任何其他ZIP一样输入EXE如果它包含JAR)。

在使用com.akathist.maven.plugins.launch4j:launch4j-maven-plugin插件时的POM文件中,该选项的名称相同 - dontWrapJar。在这种情况下,jar选项必须指向构建的JAR(在目标中),因为它相对于EXE(并且都转到目标),在大多数情况下它只是JAR的名称。虽然JAR位于EXE旁边,但是没有必要运行EXE并且可以将其删除以进行检查。

这并没有说明有其他依赖关系的其他选项,如果你需要EXE中的所有东西,你需要使用一些uberjar解决方案。