我是 Java 编程的新手,但通常熟悉一切工作原理。我希望能够将 jar 文件和 jre 放入 Windows 可执行文件 (exe) 中,以便在我分发它时,客户端不需要安装 JRE。我应该使用什么程序?
我有 launch4j,它似乎完全符合我的要求,但是当我尝试运行该应用程序时,我得到“此应用程序配置为使用捆绑的 Java 运行时环境,但运行时丢失或损坏。”
我希望我的应用程序只是一个可运行的 exe,而不是安装程序。至少,谁能告诉我如何正确地将 JRE 与 launch4j 捆绑在一起?
原文由 MagicGuy52 发布,翻译遵循 CC BY-SA 4.0 许可协议
我可以捆绑 JRE 的唯一方法是使用 Launch4J 和 Inno Setup Compiler 。
首先,在与输出文件 (.exe) 相同的目录中创建一个
jre6
文件夹(例如)。然后将 JRE 从您的系统复制到您的 jre6 文件夹中。
然后打开 Launch4J 并设置 Bundled JRE 路径- 只需输入
jre6
。然后单击 Build 按钮(显然,在您输入所有其他参数后 - 但您需要在 JRE 选项卡上输入的唯一值是 Bundled JRE 路径 值。)我原以为这会起作用,但是如果您随后将 .exe 移动到一个新位置(因此它不再与您的 jre6 文件夹位于同一位置),您会得到 This application was configured to use a bundled Java Runtime Environment 但是 当您尝试运行应用程序时出现 运行时丢失或损坏 错误…
我整天都在玩这个,我无法让 Launch4J 将 JRE 包含在 .exe 文件中。在我看来真的很糟糕,因为他们的文档似乎根本没有提到这个问题。
所以我要解决的问题是使用 Inno Setup Compiler (ISC) 。此应用程序用于将您的 .exe 包装为 Windows Installer 文件。所以我在 ISC 脚本中添加了一个设置,将 JRE 复制到安装程序包中。我添加到脚本中的行(在
[Files]
部分)是:…一些变通办法,但它成功了。
重复上述所有步骤,你应该被排序了。