如何使用 JavaFX 11(模块化)创建独立应用程序? [复制]
Posted
技术标签:
【中文标题】如何使用 JavaFX 11(模块化)创建独立应用程序? [复制]【英文标题】:How to create a standalone application using JavaFX 11 (Modular)? [duplicate] 【发布时间】:2019-08-07 08:26:35 【问题描述】:我正在学习here 教程并使用openjdk 11.0.2
和javafx-sdk-11.0.2
。
我已经在 Eclipse 中导入了 maven 项目。该项目实际上可以很好地编译和打包。它还在 /target 目录中创建了 jar 文件。
问题是,我想为我的应用程序导出一个单个可执行文件,该应用程序本身也嵌入了必要的 JRE(因此不需要在目标机器)。
这是实际的project。
如何在 Maven 中自动生成独立可执行文件?如果可能的话,我想要一个 exe。
【问题讨论】:
你看过How to deploy a JavaFX 11 Desktop application with a JRE吗? @SamuelPhilipp 看来我需要的工具是 javapackager 但它已从 JDK 11 中删除,现在它已在实验中发布 或者查看安装程序生成器,创建 setup.exe 等。迁移到 Java 17 也很容易。 【参考方案1】:在 SO 上学习 other questions here,我认为没有办法生成包含 JRE 的单个 EXE。但是,所提到的工具可以生成一个可以放在旁边“jre”目录的 EXE。
使用JavaPackager Maven 插件,这实际上可以很容易地实现,只需在您的 POM 中添加以下内容:
<plugin>
<groupId>io.github.fvarrui</groupId>
<artifactId>javapackager</artifactId>
<version>1.6.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>package</goal>
</goals>
<configuration>
<mainClass>...</mainClass>
<bundleJre>true</bundleJre>
<platform>windows</platform>
</configuration>
</execution>
</executions>
</plugin>
运行mvn package
将在“target”内生成一个包含 EXE 的目录、一个“jre”目录和一个“libs”目录。该插件还可以生成安装程序文件。
显然,对于不同的平台,您需要调整配置,但我在 Windows 上使用 JDK 16 和 17 进行了测试,它似乎工作正常。
【讨论】:
如果您真的想创建一个独立的 EXE,可以使用 Gluons 工具链来完成。 docs.gluonhq.com/#platforms_windows @mipa gluons 插件可以用于在 windows 中制作 JavaFX 应用程序的可安装版本吗? (如 JPackage) 不,它只是创建 EXE,但我认为您可以使用其他工具创建安装程序。我对 Windows 不是很熟悉。以上是关于如何使用 JavaFX 11(模块化)创建独立应用程序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章