如何使用特定的JRE交付Java应用程序?
有人知道如何将特定的JRE与已编译的Java应用程序打包在一起吗?我目前有一个可执行的jar文件,希望将JRE 6 Update 31放入其中。因此,无论客户端安装了哪个JRE版本,应用程序都会使用附带的JRE。解决方案应该独立于平台工作如何使用特定的JRE交付Java应用程序?,java,Java,有人知道如何将特定的JRE与已编译的Java应用程序打包在一起吗?我目前有一个可执行的jar文件,希望将JRE 6 Update 31放入其中。因此,无论客户端安装了哪个JRE版本,应用程序都会使用附带的JRE。解决方案应该独立于平台工作 有什么想法吗?非常感谢 您需要特定于平台的启动器,这些启动器使用放置在JAR文件旁边的JRE。当然,您可以使用批处理文件和shell脚本来实现这一点,但是有更专业的解决方案可以创建本机启动器,例如。(免责声明:我公司开发install4j)。免费的解决方案是。
有什么想法吗?非常感谢 您需要特定于平台的启动器,这些启动器使用放置在JAR文件旁边的JRE。当然,您可以使用批处理文件和shell脚本来实现这一点,但是有更专业的解决方案可以创建本机启动器,例如。(免责声明:我公司开发install4j)。免费的解决方案是。您可以使用java webstart部署它,它允许您下载jre的特定版本(如果不存在)。然而,我不知道降级是否可能。Java也必须已经安装。如果您计划分发此捆绑包(您的应用程序+JRE),那么有一个实用程序,它是一个功能强大的多平台Java安装程序生成器,可以为Java应用程序生成本机安装程序和应用程序启动器。这是不可能的。要使之成为可能,您必须为每个平台下载VM。对于windows,将JRE复制到目录和jar中,并通过shell脚本调用分布式JVM。但这太难了,Cthulhu描述的解决方案是最好的,即检查版本并指向网页 不过,您可能会查看一些 JSmooth-
Jar2Exe-我们在生产商业产品时也遇到了同样的情况。我们已经下载了特定版本的windows和linux JRE,并使用将其与应用程序打包在一起 如果要安装应用程序,必须安装“我们的”JRE,并且无论系统安装了哪些JRE或JDK,该应用程序都由该JRE运行 缺点是:安装程序是为Windows或Linux制作的,大小约为50 MB。打开包装时模块的尺寸为:
- 应用程序本身~5MB
- libs~10 MB
- JRE~90mb
请注意,我们主要通过SSH进行远程安装,并且使用压缩选项会将包时间至少增加约10倍(从几分钟增加到几十分钟)。如果您在目标平台上安装了jre,例如Windows 64位,只需复制Java安装中
jre
文件夹下的所有内容,并将其放在发行版中即可。然后创建一个批处理文件以指向本地jre而不是系统jre
以下是我的工作:
- 我的jar文件位于
文件夹中dist
- 将系统
文件夹复制到jre
dist\jre-win-1.7.0\u 04
- 创建一个.bat文件,其中包含以下行
jre-win-1.7.0_04\bin\java.exe-jar MyProgram.jar
然而,有一些警告。在我的示例Windows x64中,这确实使您的发行版更大,并且依赖于平台。然而,它是可行的和可管理的。jre支持的平台数量有限,猜猜看。。。他们也依赖于平台。在OSX上,他们正在从苹果提供Java转向甲骨文提供Java,这也意味着Java不会安装在新安装的OSX上。Oracle提供了打包Java安装的工具,他们强烈建议在安装过程中提供jre。这样做的好处是,客户不必安装额外的软件包来运行应用程序,您可以根据正确的Java运行时测试应用程序,并确保在发货前没有不稳定性。缺点是构建安装程序稍微复杂一点,而且下载量更大 当然,如果您想为Windows、Linux和ectera提供应用程序,构建安装程序会变得更加复杂,只提供一个可执行jar会简单得多,但这不是客户想要的体验。客户不希望能够下载一个应用程序并在windows、osx和linux上运行相同的exe。他们很高兴
为每个平台配备不同的安装程序,并期望安装程序以不同的方式工作 我就是这样做的: OSX:将AppBundler与捆绑的jre一起使用,将其与DMGCanvas一起放在Dmg上。用户只需将应用程序拖动到其/application文件夹 Windows:将Izpack与捆绑的jre一起使用,并用launch4j包装,这样安装程序就可以作为exe运行 Linux:使用Izpack而不使用捆绑的jre,因为用户Linux用户希望完全控制他们机器上的内容,但指定允许的Java最低版本。理想情况下,我应该为主要的Linux软件包管理器(如rpm)创建软件包,但我认为目前不值得这么做,因为Linux用户只占我客户群的一小部分
大多数安装都是使用Maven和Ant自动完成的,因此构建这些不同的安装程序并不是一件大事 Oracle提供的一个全新解决方案如下: 内容如下: 自包含的应用程序包提供以下好处:
- 用户使用熟悉的安装程序安装应用程序,并以常规方式启动
-