Launch4j似乎很容易设置但是在生成exe之后它不会从另一个位置运行。
用于创建启动器的jar文件仍然需要与exe所在的文件夹相同。
我以为它会在exe中包装jar并且可以从任何地方运行它?我以前用JSmooth做过这个并且运行良好。但是Windows 7不再支持JSmooth。
也找不到任何适当的文档。
这里出了什么问题。
谢谢, 尚卡尔。
答案 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解决方案。