【问题标题】:Include own JDK in JAR [closed]在 JAR 中包含自己的 JDK [关闭]
【发布时间】:2015-04-08 08:36:28
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 您可以将 JRE 与本机自包含应用程序捆绑在一起,但您不能在 Jar 中这样做。因为 JAR 是独立于平台的,而 JRE 不是。
  • 另一种选择是使用 Java Webstart 进行部署,并指定您需要的 Java 版本 - 如果用户还没有相应的版本,则会要求他们下载相应的版本。

标签: maven javafx java-8 executable-jar


【解决方案1】:

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

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。

【讨论】:

  • OP 要求将 JRE 捆绑在一个 jar 中,这是不可能的。也许您可以在答案中添加有关它的解释。我已经在问题上添加了a comment,但答案中的解释总是有用的:)
  • 我问是因为我不知道。我只想在每台 Windows 计算机上执行我的程序。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2012-09-21
    相关资源
    最近更新 更多