gpt4 book ai didi

jar - 如何将 JRE 捆绑到 Java 应用程序的 EXE 中? Launch4j 说 "runtime is missing or corrupted."

转载 作者:IT老高 更新时间:2023-10-28 20:22:48 29 4
gpt4 key购买 nike

我是 Java 编程新手,但通常熟悉一切工作原理。我希望能够将 jar 文件和 jre 都放入 windows 可执行文件(exe)中,这样当我分发它时,客户端就不需要安装 JRE。我应该使用什么程序?

我有 launch4j,它似乎完全符合我的要求,但是当我尝试运行应用程序时,我得到“此应用程序配置为使用捆绑的 Java 运行时环境,但运行时丢失或损坏。”

我希望我的应用程序只是一个可运行的 exe,而不是安装程序。至少,谁能告诉我如何正确地将 JRE 与 launch4j 捆绑在一起?

最佳答案

我可以捆绑 JRE 的唯一方法是使用 Launch4JInno Setup Compiler .

首先,在与输出文件 (.exe) 相同的目录中创建一个 jre6 文件夹(例如)。

然后将 JRE 从您的系统复制到您的 jre6 文件夹中。

然后您打开 Launch4J 并设置 Bundled JRE 路径 - 只需输入 jre6。然后单击 Build 按钮(显然,在您输入所有其他参数之后 - 但您需要在 JRE 选项卡本身上输入的唯一值是 Bundled JRE 路径值。)

我原以为这会起作用,但是如果您将 .exe 移动到新位置(因此它不再与您的 jre6 文件夹位于同一位置),您将获得 此应用程序被配置为使用捆绑的 Java 运行时环境,但是当您尝试运行该应用程序时,运行时丢失或损坏错误...

我整天都在玩这个,我无法让 Launch4J 将 JRE 包含在 .exe 文件中。在我看来真的很差,因为他们的文档似乎根本没有提到这个问题。

所以我要解决的是使用Inno Setup Compiler (ISC)。此应用程序用于将您的 .exe 包装为 Windows Installer 文件。所以我在 ISC 脚本中添加了一个设置,将 JRE 复制到安装程序包中。我添加到脚本中的行(在 [Files] 部分)是:

Source: "M:\Netbeans\MyApp\jre6\*"; DestDir: "{app}\jre6\"; Flags: recursesubdirs createallsubdirs

...一些变通方法,但它成功了。

重复以上所有步骤,你应该被排序了。

关于jar - 如何将 JRE 捆绑到 Java 应用程序的 EXE 中? Launch4j 说 "runtime is missing or corrupted.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13996547/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com