是否有一个工具可以将JRE的副本打包到我的应用程序中,这样无论用户是否安装了Java,它都可以运行?

是否有一个工具可以将JRE的副本打包到我的应用程序中,这样无论用户是否安装了Java,它都可以运行?,java,Java,这是我第一次实际发布Java应用程序。我来自Python背景,它有一套很棒的发布工具,名为PyInstaller和Py2App。这两种方法都将Python解释器的副本与应用程序打包在一起,因此最终用户无需安装任何东西。他们只需看到一个.EXE或.app双击它,程序就会启动 到目前为止,我还没有找到类似的Java工具。该应用程序的理念是,它存储在flashdrive上,因此无需在主机上安装任何东西即可运行 我找到了适合Windows的不错的工具。例如,它似乎可以做到这一点,但它仅适用于window

这是我第一次实际发布Java应用程序。我来自Python背景,它有一套很棒的发布工具,名为PyInstaller和Py2App。这两种方法都将Python解释器的副本与应用程序打包在一起,因此最终用户无需安装任何东西。他们只需看到一个
.EXE
.app
双击它,程序就会启动

到目前为止,我还没有找到类似的Java工具。该应用程序的理念是,它存储在flashdrive上,因此无需在主机上安装任何东西即可运行

我找到了适合Windows的不错的工具。例如,它似乎可以做到这一点,但它仅适用于windows。我迫切需要类似的功能,但要制作一个应用程序


以前有人遇到过这个难题吗?有什么工具我可以用吗

假设您是通过.zip文件分发的

您可以在应用程序目录中删除JRE的副本,然后创建一个.bat和.sh脚本,该脚本将使用同一目录中的JRE使用java命令运行应用程序

也许有更好的工具可以做到这一点,但这是实现这一点的一种方法

一个超级简化的示例.sh脚本

#!/bin/bash

jre/bin/java myapp.jar
将在该位置使用JRE运行myapp.jar。实际上,您可能希望进行检查以确保JRE存在

应用程序文件夹:

myapp/
    jre/
    start.sh
    start.bat
    myapp.jar
jre将是一个实际的jre实例。

看看,它是一个多平台Java安装程序(和启动器)构建器。您可以将JRE与安装程序捆绑在一起


免责声明:我的公司开发install4j

您是否有权分发JRE?您是否考虑过使用JWS?@Perception不幸的是,这不是一个选项,因为internet很少可用,和/或我分发这些东西的地方不可靠。出于某种原因,我发布的答案被否决并删除,尽管它是对你问题的直接回答。在任何情况下,因为您已经在下面明确说明,您不想为Install4J的许可证支付$2k,您可能需要查看JWrapper,因为它免费做同样的事情。我希望我可以使用它!然而,一个跨平台许可证的价格是$2k+,不幸的是,它有点(很多)超出了我的能力范围。如果你需要开源项目,我们提供开源许可证:你介意扩展一下复制JRE/以.sh文件开始的确切过程吗?事实上,我是一个完全的OSX方面的新手。我选择了Java。我想这会有助于从Windows到Macintosh的平稳过渡。当然,我的回答中增加了额外的内容。我要么是瞎子,要么是真的很笨。。我一辈子都找不到OS X上的JRE。你的建议在windows上运行得很好,但我在mac上导航时就像一个90岁的人。我找不到JRE目录,但是它确实有一个
Home
目录,所以我尝试复制它,但仍然没有成功。