如何使用 JavaFX 11(模块化)创建独立应用程序?

How to create a standalone application using JavaFX 11 (Modular)?

我正在学习教程 here 并使用 openjdk 11.0.2javafx-sdk-11.0.2
我在 Eclipse 中导入了 maven 项目。该项目实际上可以很好地编译和打包。它还在 /target 目录中创建了 jar 文件。
问题是,我想为我的应用程序导出一个 单个可执行文件 ,它 本身也嵌入了必要的 JRE(因此不需要在目标机器上安装了 JRE)。
这是实际的 project .

如何在 maven 中自动生成独立的可执行文件?如果可能的话,我想要一个 exe。

研究other questions SO,我认为没有办法生成包含JRE 的单个EXE。但是,所提到的工具可以生成一个 EXE,可以将其 一个“jre”目录放在一起。

使用 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 将在包含 EXE 的“target”内生成一个目录,一个“jre”目录和一个“libs”目录。该插件还可以生成安装程序文件。

显然,对于不同的平台,您需要调整配置,但我在 Windows 上用 JDK 16 和 17 测试了它,它似乎工作正常。