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


79

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

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


4
Launch4j允许您将JREexe捆绑在一起,因此也可以将其捆绑在一起。您不能使用它将JRE嵌入到exe中。
THelper'Dec 21'16

这甚至意味着什么...
DKIT

Answers:


82

经过一些尝试,我终于找到了解决方法,将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文件夹的复制和粘贴。


4
这对我帮助很大!文档对此不太清楚...像魅力一样工作:-)
Konrad'ktoso'Malawski 2011年

嗨,这是什么路径<path> ../ jre </ path>,它是C://..java文件夹中的现有路径,还是下载的新Java JRE安装程序。
RajaReddy PolamReddy 2014年

@RajaReddyPolamReddy是从.exe文件到jre所在应用程序文件夹的相对路径
Francisco Puga 2014年

9
问题询问如何将JRE的JRE与launch4j捆绑在一起。此答案显示了如何告诉launch4j使用EXE捆绑在一起的特定JRE ,但不在其内部。这似乎是可以用launch4j做到的最好的选择。(下面的另一个答案显示了一种创建安装程序的方法,该安装程序随后将同时安装您的EXE和JRE,但JRE将不在EXE中。)
连线

1
那JRE没有的JDK11呢?
Panagiss

12

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

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

    Launch4j JRE选项

  6. 确保在搜索选项中选择“仅使用私有JDK运行时”。

6

就像你交配一样的问题。现在不用担心。它全部以最大的深度解决以解决将来的解决方案。解决方案如何将JRE捆绑到jar中,而无需用户必须安装Java。您的Java应用程序将运行。

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

jar到exe转换

  1. 打开launch4j并输入以下设置。 在此处输入图片说明

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

请享用!!!!


1
将任何文件放在dist文件夹中,在清理和构建过程中发生此错误:无法删除文件...
ParisaN

0

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

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

launch4j,bin / jre,资源/ bin / jre。

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



-2

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

${jdk folder}\jre

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


如何将其捆绑到EXE中?我正在尝试将所有内容打包到jar中,这样我就不必担心用户是否安装了Java。我意识到让他们下载Java可能是最好的主意。但是,我想尝试所有部署选项。
2011年

3
@CodeBunny单独使用Launch4j是不可能的,但是有人找到了另一个不错的解决方案:mark.koli.ch/…– Zero3
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.