我使用 Launch4j 创建的 .exe 无法运行

问题描述 投票:0回答:5

我能够从可执行 jar 成功创建 .exe 文件。从 Launch4j 我可以测试包装器,日志上的输出正是我所期望的。但是,如果我尝试从命令行或 Windows 资源管理器运行 exe,则不会发生任何情况。没有错误,没有按预期输出到控制台。该程序还应该编辑一个文本文件,当我使用批处理文件运行 jar 时,会发生这种情况,但当我运行 exe 时,不会发生这种情况。这些都在同一台计算机上,所以我怀疑这是 JRE 的问题。我广泛搜索了 StackOverflow,但没有发现任何可以帮助解决这种情况的方法。我确实发现这篇文章有类似的问题:Launch4J可执行文件未按预期执行但没有人真正回答这个问题。预先感谢您的帮助

java jar executable launch4j
5个回答
7
投票

我发现了问题。在标题下,我必须将标题类型从 GUI 切换到控制台。之后我就可以运行exe了。


1
投票

您可能接受某些内容作为命令行参数,这可能会引发像我这样的错误。


0
投票

就我而言,这是“单个实例”选项卡上的勾号:仅允许应用程序的单个实例。 虽然我已经杀死了该进程,但由于某种未知的原因,该 exe 被认为是活动的。因此,建议重新启动电脑。


0
投票

为了让它在 Windows 10 上运行,我必须做这些事情:

首先,确保您创建的可执行 JAR 实际执行。我永远无法通过双击来执行 JAR。相反,我创建了一个

.bat
文件,其中添加了
java -jar
命令行指令来执行 jar,包括 VM 参数。例如,要执行
foo.jar
.bat
文件应包含
java -jar --module-path %FX_HOME% --add-modules javafx.controls,javafx.fxml foo.jar
。一旦 JAR 正确执行(注意命令提示符窗口),那么您的 JAR 就准备好了。然后,从 Launch4J 应用程序执行以下操作:

  1. 创建FX_HOME环境变量。确保它指向下载的 Java FX 发行版所在的 lib 文件夹。*
  2. 设置JAVA_HOME环境变量。*
  3. 确保 JAVA_HOMEPath 变量上的第一个条目。通过打开命令提示符并输入
    where java
    并按 ENTER 键进行验证。
  4. 在标题下,确保选择“GUI”。
  5. 在 JRE 下,将 Bundled JRE paths 设置为 %JAVA_HOME%
  6. VM 选项下,输入
    --module-path %FX_HOME% --add-modules javafx.controls,javafx.fxml

*如果任何路径包含空格,请确保在创建环境变量时将它们放在引号中。例如:C:\Program Files\Java 17 中,应该用引号引起来。这是因为命令行参数是用空格分隔的,而“Program Files”包含空格,使命令行解释器误以为“Program”是一个参数的结尾,而“Files”是另一个参数的开头。通过添加引号,解释器现在知道空格是表示路径的单个参数的一部分。 就我而言,在“选项”部分的“基本”选项卡下,我选中了“启动 GUI 应用程序后保持活动状态”(这不起作用)。


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.