You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下OpenJDK16打包JavaFX找不到javafx-packager报错如何解决

问题根源

你遇到的报错确实是Java版本和插件不兼容导致的。你使用的com.zenjava:javafx-maven-plugin:8.8.3是JDK 8时代的专属插件,早已停止维护,仅适配内置了JavaFX以及javafx-packager、ant-javafx.jar组件的Oracle JDK 8,从JDK 9开始JavaFX已经从JDK官方发行版中剥离,你使用的JDK 16中根本不存在该插件依赖的组件,因此执行jfx:native命令时会找不到对应构件。

解决方案
  1. 首先清理pom.xml中的冗余配置,直接删除com.zenjava的javafx-maven-plugin整段配置,你项目中已经引入的官方org.openjfx:javafx-maven-plugin即可满足构建需求。
  2. JDK 14及以上版本已经内置了jpackage工具,可以直接将jlink生成的运行时镜像打包成对应平台的安装包,你使用的JDK 16原生支持该工具,无需额外引入插件。

具体操作步骤

  • 先正常执行jlink生成运行时镜像,你当前已经可以成功完成这一步,生成的镜像默认路径为target/jlink/csgo_cfg_helper
  • 执行以下jpackage命令生成dmg安装包:
jpackage --type dmg \
--name CSGOCfgHelper \
--app-version 1.0 \
--main-class com.ginkgo.csgo.Main \
--input target \
--main-jar csgo-cfg-helper-client-1.0-SNAPSHOT.jar \
--runtime-image target/jlink/csgo_cfg_helper \
--dest target/installer

如果需要生成pkg格式,只需要把--type dmg改成--type pkg即可。

可选:将打包流程集成到Maven中

如果希望直接通过Maven命令完成打包,也可以在pom中添加jpackage-maven-plugin插件配置:

<plugin>
    <groupId>io.github.fvarrui</groupId>
    <artifactId>jpackage-maven-plugin</artifactId>
    <version>1.10.1</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>jpackage</goal>
            </goals>
            <configuration>
                <name>CSGOCfgHelper</name>
                <appVersion>1.0</appVersion>
                <mainClass>com.ginkgo.csgo.Main</mainClass>
                <runtimeImage>target/jlink/csgo_cfg_helper</runtimeImage>
                <macDmg>true</macDmg>
                <outputDirectory>target/installer</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

配置完成后执行mvn clean package即可同时完成编译、jlink打包、安装包生成的全流程。

内容的提问来源于stack exchange,提问作者keepslient

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 21:06:03