如何将JRE与Launch4j捆绑在一起?

Cod*_*nny 70 java portability exe launch4j

我的计算机上有Launch4J,这是一个很棒的程序.我感兴趣的一个功能是能够在一般.EXE文件中捆绑JRE.但是,我找不到任何描述如何执行此操作的文档.

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

Fra*_*uga 75

经过一些尝试后,我终于得到一个解决方法,将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)
Run Code Online (Sandbox Code Playgroud)

在launch4j的xml文件中我配置jre,如下所示:

<jre>
    <path>../jre</path>
    <opt>-DgvSIG.confDir=../cfg</opt>
</jre>
Run Code Online (Sandbox Code Playgroud)

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

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

  • 问题是如何将EXE中的JRE*与launch4j捆绑在一起.这个答案显示了如何告诉launch4j使用一个特定的JRE,它与*你的EXE捆绑在一起,但不在其中.这似乎是launch4j可以做到的最好的.(下面的另一个答案显示了一种创建安装程序的方法,然后安装EXE和JRE,但JRE不会在EXE中.) (6认同)
  • 这对我帮助很大!文档对此并不太清楚...就像一个魅力:-) (4认同)
  • 任何链接到非常详尽的指南?我在理解这一点时遇到了一些麻烦。 (2认同)
  • 那么不附带 JRE 的 JDK11 又如何呢? (2认同)

小智 17

我做了以下工作,它使用 ver Launch4j 3.11 对我有用:

  1. 为我的应用程序创建了一个新文件夹(例如称为 MyApp)。
  2. 将 jar 文件从 java 项目 dist 文件夹与 lib 文件夹一起复制到 MyApp。
  3. 在我的应用程序文件夹 MyApp 中创建了一个名为 jre 的文件夹,所以现在 MyApp 文件夹包含:
    • 我的应用程序文件
    • 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 运行时”。


dan*_*lad 5

像你交配一样的问题.现在不用担心.它全部解决了最大深度,以解决未来的解决方案.解决方法如何在不需要用户安装java的情况下为您的jar 捆绑JRE.您的Java应用程序将运行.

  1. JRE文件夹复制libbin文件夹到项目dist文件夹

jar转exe

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

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

请享用!!!!