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

Zet*_*tor 7 java eclipse maven java-platform-module-system openjfx

我在这里遵循教程并使用openjdk 11.0.2javafx-sdk-11.0.2
我已经在Eclipse中导入了maven项目。该项目实际上可以编译和打包。它还在/ target目录中创建了jar文件。
问题是,我想为我的应用程序导出一个可执行文件,该可执行文件本身也嵌入了必要的JRE(因此,无需在目标计算机上安装JRE)。
这是实际的项目

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

rol*_*lve 1

在研究有关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>
Run Code Online (Sandbox Code Playgroud)

运行mvn package将在“target”内生成一个目录,其中包含 EXE、“jre”目录和“libs”目录。该插件还可以生成安装程序文件。

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