Java Can’;t启动.exe文件。使用Launch4j 3.12

Java Can’;t启动.exe文件。使用Launch4j 3.12,java,Java,我正在尝试启动.exe文件。但它没有打开 我使用launch4j3.12 jar文件在命令提示符下工作:C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\Gracian\EnglishTest\out\artifacts\EnglishTest\u jar>java-jar EnglishTest.jar 以下是Launch4j日志: 版本:3.12 CmdLine:C:\Users\iServic

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

我使用
launch4j3.12

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

以下是Launch4j日志:

版本:3.12 CmdLine:C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\EnglishTest\out\artifacts\EnglishTest\u jar\TheOracle.exe--l4j debug WOW64:是的 工作目录:C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\EnglishTest\out\artifacts\EnglishTest\u jar。 Java最小版本:
Java最大版本:
捆绑JRE:jre1.8.0Ó 检查启动程序:C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\EnglishTest\out\artifacts\EnglishTest\u jar\jre1.8.0\u 211\bin\javaw.exe(确定) 主类:sample.Main 信息:未定义类路径。 启动程序:C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\EnglishTest\out\artifacts\EnglishTest\U jar\jre1.8.0\U 211\bin\javaw.exe 启动器参数:-classpath“C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\EnglishTest\out\artifacts\EnglishTest\u jar\theracle.exe”sample.Main 参数长度:154/32768个字符 退出代码:0


为什么.exe文件不能启动?如何找出原因?我需要安装不同的jre版本吗?请帮助

以下是一段,回答您的问题。运行l4j时,必须提供有效jre的完整路径,l4j文档对此进行了解释。摘自:


捆绑的JRE路径(%VAR%)
...
例如,如果您已经配置了JAVA_HOME环境变量,那么您可以使用

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

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


C:\ProgramFiles\Java\jre\U 1.1234
编辑 实际上,
%JREHOMEDIR%
是默认值。但是文档说在应用程序执行之前不会检查路径。我可能会尝试使用SystemPropertiesAdvanced为
%JREHOMEDIR%
赋值

第二次编辑 我已经重新下载了launch4j可执行文件,并用我已经拥有的一个小型java应用程序进行了尝试。通过不同的配置步骤,我尝试了指定jre路径和不指定jre路径,两者都生成了一个我可以运行的exe。但是,如果我指定了一个不再存在的路径,我会收到您描述的消息

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

或者,“仅”指定最小版本。

使用图形用户界面更容易生成配置文件。 然后您必须使用
launch4jc.exe c:\Users\…\newly\u saved\u config.xml“

第三次编辑 回答你对我的回答的评论: 您必须将main类添加到jar的MANIFEST.MF中。 您可以通过在META-INF目录下的清单文件中添加一行来完成此操作。如果使用maven编译,则可以在pom.xml中包含一行,将主类添加到清单中。 有关更多详细信息,请阅读以下内容:


您就快到了!

问题是我安装了不同版本的jdk和jre。现在.exe文件可以工作了!!!感谢您尝试帮助我!

当您使用launch4j执行打包时是否有警告消息?launch4j 3.12:编译资源中只有一条消息链接包装警告:对可执行文件进行签名以最大限度地减少防病毒误报,或使用启动而不是包装。已成功创建C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\Gracian\EnglishTest\out\artifacts\EnglishTest\u jar\TheOracle.exe您不应在jar中添加jre,而应自行完成此项工作我从jar中删除了jre,并在launch4j 3.12中的Min jre version字段中写入:1.8.0,现在没有消息”此应用程序配置为使用捆绑的Java运行时环境,但运行时丢失或损坏。“但是.exe文件没有启动,但是jar从命令行开始:C:\Users\iService\OneDrive\documents\myDocuments\programming\IdeaProjects\Gracian\EnglishTest\out\artifacts\EnglishTest\u jar>java-jar EnglishTest.jar Hmm.。我添加了launch4j日志。.exe文件仍然没有启动..您的jar现在是否包含清单文件?如果是,控制台在exe启动时说什么?如果没有,,您可以添加如下所示的清单:
manifest Version:1.0
Archiver Version:Plexus Archiver
创建人:Apache Maven
构建人:simon构建Jdk:1.8.0\u 232主类:MyMainJavaClassName,其中MyMainJavaClassName.java包含具有签名的方法<代码>公共静态void main(字符串[]args)
<jre>
    <path>%JAVA_HOME%</path>
    ...
</jre>
<jre>
    <path>C:\Program Files\Java\jre_1.1234</path>
</jre>