89

我的电脑上有 Launch4J,它是一个很棒的程序。我感兴趣的其中一项功能是能够将 JRE 捆绑到通用 .EXE 文件中。但是,我找不到任何描述如何执行此操作的文档。

如何将 JRE 与 EXE 捆绑在一起?另外,我在哪里可以获得一个紧凑的便携式 JRE 来运行?Oracle 上的下载链接用于安装程序包。

4

6 回答 6

91

经过一些尝试,我终于找到了一种解决方法,将 jre 捆绑到我的应用程序中:

我将我的应用程序打包为一个 zip 文件,其中包含以下文件夹:

containerFolder
|- jre
      |-bin (in bin there is java.exe)
      |-lib
|- cfg (to save the user configuration, but it's not needed)
|- bin (my application with the .exe and the .jar and all the other stuff)

在 launch4j 的 xml 文件中,我像这样配置 jre:

<jre>
    <path>../jre</path>
    <opt>-DgvSIG.confDir=../cfg</opt>
</jre>

这里的诀窍是路径不是 java.exe 文件。jre 的路径是相对于 .exe 的位置,它应该指向 java.exe 文件之前的一个文件夹

我正在使用的 jre 文件夹只是从安装在 Windows 系统上的 jre 文件夹的复制和粘贴。

于 2011-09-28T10:50:17.790 回答
19

我做了以下事情,它使用 Ver Launch4j 3.11 对我有用:

  1. 为我的应用程序创建了一个新文件夹(例如 MyApp)。
  2. 将 java 项目 dist 文件夹中的 jar 文件与 lib 文件夹一起复制到 MyApp。
  3. 在我的应用程序文件夹 MyApp 中创建了一个名为 jre 的文件夹,所以现在 MyApp 文件夹包含:
    • 我的应用程序.jar
    • lib <- 这包含我的 java 应用程序所需的库。
    • jre
  4. 将 bin 和 lib 文件夹从 java jre 文件夹 (C:\Program Files (x86)\Java\jre7) 复制到 MyApp\jre
  5. 在设置了所有必需选项的 Launch4j 中,然后将 Bundled JRE 路径设置为“jre”

    Launch4j JRE 选项

  6. 确保在搜索选项中选择了“仅使用私有 JDK 运行时”。
于 2018-03-29T09:59:21.470 回答
7

跟你朋友一样的问题。现在不用担心了。它都以最大深度解决以解决未来的解决方案。解决方案如何在不需要用户安装 java 的情况下为 jar捆绑JRE 。您的 java 应用程序将运行。

  1. 从您的JRE文件夹复制lib和文件夹到您的项目 dist 文件夹bin

jar到exe的转换

  1. 打开launch4j并输入以下设置。 在此处输入图像描述

诀窍是您需要提供包含 javaw.exe 的完整路径。

享受!!!!

于 2018-01-03T11:01:27.127 回答
0

我刚刚做了这个。上面清楚地描述了捆绑jre的方法。

在这里,我只是分享一个我一直在挣扎的经历。如果要在launch4j创建包装exe后创建安装程序exe,请注意launch4j和jre的文件路径。这是我用来解决问题的路径:

启动4j、bin/jre、资源/bin/jre。

launch4j、bin 和资源处于同一级别。

于 2019-06-21T21:23:58.203 回答
-2

jre 通常可以在您的 SDK 文件夹中找到。是的,在线链接是安装程序,但是一旦安装,JRE 现在就位于您的本地磁盘上。我的位于

${jdk folder}\jre

如果您真的需要,可以手动删除 JRE 中不需要的部分(我不确定网上有什么可用的)。

于 2011-08-15T21:53:05.900 回答
-2

可以在https://github.com/vZome/vzome/blob/master/desktop/platform/windows/README.md中找到使用 Launch4J 将 Java 应用程序与特定 JRE 捆绑在一起的工作示例。此特定发行版配置为要求 vZome使用捆绑的 JRE,而不是在目标平台上找到的任何 JRE。

希望这可以帮助。

于 2019-07-30T20:50:37.977 回答