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

mvn javafx:jlink报错Module jdk.jsobject not found排查修复

根因确认

报错核心原因和排查结论一致:javafx:jlink插件执行时默认会读取当前执行环境的JAVA_HOME路径查找jlink工具,当前环境的JAVA_HOME指向了Android Studio内置的裁剪版JRE,该JRE没有包含jdk.jsobject等JavaFX运行依赖的标准JDK模块,必然会触发模块找不到的构建错误。

修复方案(按优先级操作)
  • 全局环境变量修复(推荐,一劳永逸)
    1. 打开系统环境变量配置面板,找到系统变量中的JAVA_HOME条目,将值修改为本地安装的、和项目Java版本匹配的完整JDK根目录(注意是JDK不是JRE,路径不要写到bin层,正确路径格式参考:C:\dev\jdk\jdk-17.0.10),删除原有的Android Studio内置JRE路径配置。
    2. 检查系统Path变量,删除所有旧的、指向Android Studio JRE下bin目录的Java相关路径,新增%JAVA_HOME%\bin条目。
    3. 关闭所有已打开的命令行、Eclipse窗口(旧窗口不会加载新的环境变量),新开命令行执行jlink --version,确认输出的版本号和配置的JDK版本一致,路径指向配置的JDK下的bin目录。
  • Eclipse运行环境修复
    1. 打开Eclipse偏好设置,进入Java > Installed JREs,将默认JRE设置为刚才配置的标准JDK,移除列表里的Android Studio内置JRE条目。
    2. 进入Maven > Installations,优先选择本地独立安装的Maven,不要使用Eclipse嵌入式Maven;再进入Maven > Launching,将Maven构建的默认运行JRE设置为标准JDK。
    3. 右键出错的项目,选择Build Path > Configure Build Path,移除类路径中所有指向Android Studio JRE的条目,重新关联标准JDK。
  • 项目级兜底配置(不需要改全局环境变量时使用)
    如果因为Android Studio开发需要保留原来的环境变量配置,可以直接在项目pom.xml的javafx-maven-plugin配置中显式指定jlink的绝对路径,跳过环境变量查找逻辑,配置示例:
<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.0.8</version>
    <configuration>
        <!-- 替换为本地JDK中jlink的实际绝对路径,Mac/Linux路径无.exe后缀 -->
        <jlinkExecutable>C:/dev/jdk/jdk-17.0.10/bin/jlink.exe</jlinkExecutable>
        <mainClass>com.yourpackage.Main</mainClass>
        <!-- 其余原有配置保持不变 -->
    </configuration>
</plugin>
  • 重新构建验证
    右键项目选择Maven > Update Project,勾选强制更新快照/发布版选项,确认项目配置刷新完成后,重新执行mvn clean javafx:jlink即可。如果需要确认路径是否正确,可以加-X参数查看debug日志,确认日志中调用的jlink路径为标准JDK路径即可。

注意:Android Studio内置的JRE是专门为Android开发裁剪的运行时,缺少很多标准JDK的模块和工具,不能用来做JavaSE/JavaFX项目的开发、构建运行时,所有Java开发相关的构建操作都必须使用标准发行版OpenJDK/OracleJDK。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:30:53