首页 > 解决方案 > 是否可以在没有与模块路径相关的 VM 选项的情况下运行 JavaFX11+ 项目 jar?

问题描述

我的问题与这个问题很相似,但没有提供答案,我的目标略有不同,因为我想得到一个可执行文件:jar 文件的自动模块 VM 选项

因此,在 Oracle 从 JDK11+ 中删除 JavaFX Packager 工具后,我在部署 JavaFX 应用程序时遇到了问题。

在 JDK11 之前,我使用上述打包工具创建了一个带有相关数据的可执行文件,然后使用 Inno Setup Compiler 创建了一个安装程序,然后将其传递。

现在,我对替代方案的想法包括创建一个胖 jar(可以独立运行,包含所有使用的库),然后从中创建一个可执行文件。

我的问题是如果不添加如下所示的 VM 选项,创建的 jar 文件将无法成功运行。

我的问题有两个方面:

  1. 有没有办法在运行 jar 时避免添加这些 VM 选项?

  2. 还是有更聪明的方法来结束可执行文件?(我对创建批处理文件不感兴趣,一个可能的解决方案也应该适用于 JDK12)

java -jar Project.jar
// Error: JavaFX runtime components are missing, and are required to run this application

java --module-path=%PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml -jar Project.jar

提前致谢!随意询问是否有任何不清楚的地方。

标签: javafxjar

解决方案


推荐阅读