java - 无法启动 .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 版本还是什么?请帮忙
解决方案
这是段落,以回答您的问题。运行 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
你快到了!
推荐阅读
- c - 为什么使用指针访问的结构成员没有得到更新?
- java - 更改 JList 模型(Java swing)时,JscrollPane 不更新
- javascript - Javascript serviceworker:处理和重新发送请求正文
- django - Django 中的媒体目录
- python - 无效 URL 时 Python 提取失败
- r - 在 stat_summary 中设置位置时出错
- python - Django 从 URL 获取文件并使用 S3 将其保存到模型 FileField
- json - 是否可以“注入”对 JSON 模式的引用
- flutter - DioErrorType.RESPONSE:Http 状态错误 [500] (Flutter)
- oracle - 在 oracle 触发器中执行过程期间出现“未找到数据”错误