【问题标题】:jpackage Error: JavaFX runtime components are missing, and are required to run this applicationjpackage 错误:缺少 JavaFX 运行时组件,需要运行此应用程序
【发布时间】:2025-12-10 17:35:01
【问题描述】:

在使用“mvn package”创建 jar 后,我使用此命令从 jar 创建安装程序:

jpackage --verbose --name project_executable_name --input target --main-jar ProjectJAR.jar --main-class com.example.MainClass --win-console

当尝试双击项目可执行文件(由 jpackage 创建的 .exe)时,它不会打开。从 cmd 运行它时,我收到以下错误消息:

C:\Program Files\project_executable_name>project_executable_name.exe 错误:JavaFX 运行时组件丢失,需要运行 这个应用程序

奇怪的是,如果我双击 jar(jpackage 使用它来创建程序映像),它会启动我的应用程序。 java -jar 也一样。当使用 intellij 和 mvn javafx:ru​​n 中的“运行”按钮时,程序成功运行。为了从 intelliJ 运行,需要以下 VM 参数:

--module-path /Users\UserName\Documents\javafx-sdk-15\lib
--add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web

该程序从多个来源运行,但由于某种原因它不适用于 jpackage。有什么想法吗?

【问题讨论】:

    标签: java maven javafx jpackage


    【解决方案1】:

    AFAIK JavaFX 从来都不是 JRE/JDK 的直接组成部分。它必须单独安装。 您是在 jar 中包含 JavaFX 代码,还是通过类路径引用它? (注意,甚至可以在 MANIFEST 中设置类路径)。如果是外部文件,JPackage可以访问这个外部文件吗?

    【讨论】: