2

Launch4j 似乎设置起来很简单,但在生成 exe 后,它不会从其他位置运行。

用于创建启动器的 jar 文件仍需要与 exe 位于同一文件夹中。

我认为它会将 jar 包在 exe 中并可以从任何地方运行它?我以前用 JSmooth 做过这个,效果很好。但 JSmooth 在 Windows 7 上不再支持。

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

这里出了什么问题。

谢谢,香卡尔。

4

2 回答 2

0

你的简单场景对我有用。我需要填写的唯一选项是输出文件、Jar 和 Min JRE 版本。其他一切都保留为默认值。

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

于 2013-05-07T10:56:53.707 回答
0

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

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

这并没有说明其他依赖项还有其他选项,如果您需要 EXE 中的所有内容,而不是使用一些 uberjar 解决方案。

于 2015-01-26T09:49:51.080 回答