【问题标题】:How to include jdk into Maven compiled jar如何将 jdk 包含到 Maven 编译的 jar 中
【发布时间】:2021-07-31 01:45:09
【问题描述】:

我有一个使用 Maven 和 JavaFX 的项目(在 Windows 10 上使用 intellij CE)。我正在尝试制作一个自动执行的 JAR 。我希望所有依赖项包括 JDK 都包含在我的 JAR 中,这样如果用户的计算机上没有安装 Java,它仍然可以工作。我已经设法打包了除 jdk 之外的所有依赖项。有人可以告诉我如何在 Maven 中实现这一目标吗?

这是我的 POM:

module Appiculture {

    requires javafx.base;
    requires javafx.controls;
    requires javafx.fxml;
    requires javafx.graphics;
    requires javafx.media;
    requires javafx.swing;
    requires javafx.web;
    //requires javafx.swt;
    requires sqlite.jdbc;
    requires java.sql;
    requires jasperreports;

    opens com.base.controllers.views;
    opens com.base.models.structure;

    exports com.base.controllers.views;
    exports com.base.models;
    exports com.base;
    //exports com.base.views;


}

这是我的模块信息:

module Appiculture {

    requires javafx.base;
    requires javafx.controls;
    requires javafx.fxml;
    requires javafx.graphics;
    requires javafx.media;
    requires javafx.swing;
    requires javafx.web;
    //requires javafx.swt;
    requires sqlite.jdbc;
    requires java.sql;
    requires jasperreports;

    opens com.base.controllers.views;
    opens com.base.models.structure;

    exports com.base.controllers.views;
    exports com.base.models;
    exports com.base;
    //exports com.base.views;


}

这是我的 git 存储库: https://github.com/Osolemio44/Appiculture.git

【问题讨论】:

  • 谢谢。这是一个非常有趣的教程,虽然它不是我想要的。我有兴趣继续使用 java 11 和 Maven。我需要的是一种让 Maven 包含 JDK 并让我的应用程序查找包含的依赖项的方法,而不是强制用户安装 Java。这是我错过的最后一块,因为其他一切都很好。
  • 这不是它的工作原理——你用 maven 创建一个 jar,然后使用 jpackage 工具为特定平台创建一个可执行文件
  • 对不起。我不明白你为什么说这不是它的工作原理。 Maven 可以使用 maven-jar-plugin、Maven Assembly Plugin 或 Maven Shade Plugin(我遵循本教程 baeldung.com/executable-jar-with-maven)打包自动可执行 jar,并包含应用程序所需的所有依赖项。我唯一尝试的是添加 jdk。
  • 除非主机安装了 jre 和/或 maven 这是不可能的

标签: java maven javafx dependencies


【解决方案1】:

阿斯加罗夫先生是对的。

要执行 JAR,必须安装 Java。所以不可能有一个包含 JDK 并因此在没有安装 Java 的情况下运行的 JAR。

【讨论】:

    猜你喜欢
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2023-03-15
    • 2021-09-10
    • 2014-02-05
    • 1970-01-01
    • 2011-07-03
    相关资源
    最近更新 更多