Portability 如何将JRE与Launch4j捆绑?

Portability 如何将JRE与Launch4j捆绑?,portability,exe,java,launch4j,Portability,Exe,Java,Launch4j,我在我的电脑上启动了4J,这是一个很棒的程序。我感兴趣的一个特性是能够在general.EXE文件中绑定JRE。但是,我找不到任何描述如何进行此操作的文档 如何将JRE与EXE绑定?另外,在哪里可以运行一个紧凑的、可移植的JRE?Oracle上的下载链接用于安装程序包。jre通常可以在SDK文件夹中找到。是的,联机链接是安装程序,但一旦安装,JRE现在就位于本地磁盘上。我的矿位于伦敦 ${jdk folder}\jre 如果您真的需要,您不需要从JRE中删除的部分可能可以手动删除(我不确定网上

我在我的电脑上启动了4J,这是一个很棒的程序。我感兴趣的一个特性是能够在general.EXE文件中绑定JRE。但是,我找不到任何描述如何进行此操作的文档


如何将JRE与EXE绑定?另外,在哪里可以运行一个紧凑的、可移植的JRE?Oracle上的下载链接用于安装程序包。

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

${jdk folder}\jre

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

经过一些尝试,我终于找到了一个解决方法,可以在我的应用程序中捆绑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>

../jre
-DgvSIG.confDir=../cfg
这里的技巧是路径不是指向java.exe文件。jre的路径是相对于.exe的位置的,它应该指向java.exe文件之前的一个文件夹


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

与您遇到的问题相同。现在不用担心了。它以最大的深度解决所有问题,以解决未来的解决方案。 解决方案:如何为jar绑定JRE,而无需用户安装java或不安装java。您的java应用程序将运行

  • lib
    bin
    文件夹从JRE文件夹复制到project dist文件夹中
  • 打开launch4j并输入以下设置。
  • 诀窍是您需要提供包含javaw.exe的文件的完整路径


    享受吧

    我做了以下操作,并使用ver Launch4j 3.11对我有效:

  • 为我的应用程序创建了一个新文件夹(例如 MyApp)
  • 将jar文件从java project dist文件夹复制到MyApp 以及lib文件夹
  • 在我的应用程序文件夹MyApp中创建了一个名为jre的文件夹 因此,现在MyApp文件夹包含:
    • MyApp.jar

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

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

      启动4j,bin/jre,resources/bin/jre


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

      有关使用Launch4J将Java应用程序与特定JRE捆绑在一起的工作示例,请访问。此特定发行版配置为要求使用捆绑的JRE,而不是目标平台上的任何JRE


      希望这有帮助。

      如何将其捆绑到EXE中?我正在尝试将所有内容打包到jar中,这样我就不必担心用户是否安装了Java。我意识到让他们下载java可能是最好的主意;不过,我想尝试一下我所有的部署选项。@CodeBunny这在Launch4j中是不可能的,但是有人找到了另一个很好的解决方案:这对我帮助很大!文档对此不太清楚。。。工作方式很有魅力:-)嗨,这是什么路径?/jre它可能是C://…java文件夹中的现有路径,也可能是下载的新java jre安装程序。@rajaredypolamreddy是从.exe文件到应用程序中jre所在文件夹的相对路径问题是如何将exe中的jre与launch4j捆绑在一起。这个答案展示了如何告诉launch4j使用一个特定的JRE,这个JRE是您与EXE捆绑在一起的,但不是在它里面。这似乎是launch4j所能做到的最好的方法。(下面的另一个答案显示了一种创建安装程序的方法,该安装程序将同时安装您的EXE和JRE,但JRE将不在EXE中。)那么没有JRE的JDK11呢?Launch4j允许您将JRE与您的EXE捆绑在一起,因此与它一起。您不能使用它将JRE嵌入到您的exe中。这甚至意味着什么…@DKIT这意味着您可以将程序放入包含JRE的文件夹中,但您不能使用launch4j生成自动包含JRE的独立.exe文件。因此,您可以将JRE与exe绑定(在同一文件夹中),但不能将其嵌入exe本身。最终,您将向客户端分发一个文件夹,或者最终取决于客户端系统的JRE/JDK。将任何文件放入dist文件夹在清理和生成期间出错:无法删除文件。。。