【发布时间】: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