首页 > 解决方案 > 无法启动 .exe 文件。使用 Launch4j 3.12

问题描述

我正在尝试启动 .exe 文件。但它没有打开。

我用Launch4j 3.12

jar 文件在命令提示符下工作:C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\Gracian\EnglishTest\out\artifacts\EnglishTest_jar>java -jar EnglishTest.jar

这是 Launch4j 日志:

版本:3.12 CmdLine:C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\EnglishTest\out\artifacts\EnglishTest_jar\TheOracle.exe --l4j-debug WOW64:是工作目录:C:\Users\iService \OneDrive\documents\myDocuments\programming\IdeaProjects\EnglishTest\out\artifacts\EnglishTest_jar。Java 最低版本:
Java 最高版本:
捆绑的 JRE:jre1.8.0_211 检查启动器:C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\EnglishTest\out\artifacts\EnglishTest_jar\jre1.8.0_211\bin\javaw.exe(OK) 主类:sample.Main 信息:未定义类路径。启动器:C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\EnglishTest\out\artifacts\EnglishTest_jar\jre1.8.0_211\bin\javaw.exe 启动器参数:-classpath "C:\Users\iService\ OneDrive\documents\myDocuments\programming\IdeaProjects\EnglishTest\out\artifacts\EnglishTest_jar\TheOracle.exe" 示例。主要参数长度:154/32768 个字符退出代码:0

为什么 .exe 文件无法启动?如何找出原因?我需要安装不同的 jre 版本还是什么?请帮忙

标签: java

解决方案


这是段落,以回答您的问题。运行 l4j 时,您必须提供有效 jre 的完整路径,在 l4j 文档中有说明。取自http://launch4j.sourceforge.net/docs.html

<jre>
    <path>bundled JRE path (%VAR%)</path>
    ...
</jre>

例如,如果您已经配置了 JAVA_HOME 环境变量,则可以使用

<jre>
    <path>%JAVA_HOME%</path>
    ...
</jre>

但这可能是默认值,也可能没有值,因此您可以指定有效 jre 的路径(它可以是比用于编译的 jre 更新的 jre,但不是旧的 jre)

<jre>
    <path>C:\Program Files\Java\jre_1.1234</path>
</jre>

编辑 事实上,%JREHOMEDIR%是默认值。但是文档说在执行应用程序之前不会检查路径。我可能会尝试为%JREHOMEDIR%使用 SystemPropertiesAdvanced分配一个值

第二次编辑 我重新下载了 launch4j 可执行文件并尝试使用我已经拥有的小型 Java 应用程序。通过不同的配置步骤,我尝试指定 jre 路径而不指定 jre 路径,并且都生成了我能够运行的 exe。但是,如果我指定一条不再存在的路径,我会收到您描述的消息在此处输入图像描述

因此,要么您指定一个有效的 jre 路径(该路径必须在将运行目标应用程序的每台计算机上都有效)

在此处输入图像描述

或者,您“仅”指定一个最低版本。 在此处输入图像描述

使用图形用户界面更容易生成配置文件。然后你必须用launch4jc.exe c:\Users\...\newly_saved_config.xml"

第三次编辑 回答您对我的回答的评论:您必须将主类添加到罐子的 MANIFEST.MF 中。为此,您可以在 META-INF 目录下的清单文件中添加一行。如果您使用 maven 编译,您可以在 pom.xml 中包含一行,将 Main 类添加到清单中。有关更多详细信息,您可以阅读以下内容:https ://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

你快到了!


推荐阅读