在JAR中包含自己的JDK

时间:2015-04-08 08:36:28

标签: maven javafx java-8 executable-jar

我有一个需要JDK 8 Update 40的JavaFX- / Maven-Project。我知道我的学校课程中有很多没有这个版本的计算机。

如何使用可执行JAR交付此版本的JDK?

感谢。

2 个答案:

答案 0 :(得分:4)

由于您已经在使用Maven和JavaFX,因此请使用Maven JavaFX pluginbuild a native installer将Java运行时与您的应用程序捆绑在一起。

mvn clean jfx:native

您可以按照quick start guide快速启动并运行示例项目。

使用Maven JavaFX插件工具将创建一个自包含的应用程序,如Oracle self-contained application documentation中所述。 Oracle文档包括使用javapackager命令行工具为基于ant的构建或打包执行类似任务。它还包括您需要安装的必备软件(例如Windows上的wix或innosetup,或Linux上的rpmbuild)。以及其他信息,如如何自定义结果包和设置安装程序图标等

除了由Maven / JavaFX打包工具直接支持的内置格式(如rpm,exe等)之外,根据Oracle指南:

  

您还可以通过对打包为文件夹的自包含应用程序进行后处理来组装自己的包,例如,如果您希望将应用程序分发为ZIP文件。

我没有一个示例项目,它将带有JRE的应用程序捆绑到一个ZIP文件中。如前所述,您可能更容易捆绑和分发本机安装程序,而不是ZIP文件。

请注意,此处讨论的所有打包技术都解决了将JRE与应用程序JAR捆绑在一起的问题,而不是在应用程序JAR中。基本上你有一个更高级别的容器格式(例如ZIP,EXE等),它包含JRE和你的应用程序JAR和相关资源,用户激活更高级别的容器(例如解压缩ZIP或安装EXE)并放置应用程序JAR和本地JRE,仅供您的应用程序在用户系统上使用。

答案 1 :(得分:2)

虽然您不能在JAR中包含JRE。您可以使用第三方工具提供单击安装,例如Advanced Installer Advanced Installer(付费),InstallAnywere(付费),JWrapper(免费),IzPack(免费)或类似的东西。这样,您可以在安装应用程序时定义必须存在哪个版本的JRE。