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

IntelliJ启动JavaFX应用报IllegalAccessError异常问题咨询

问题根因

报错由JavaFX模块加载冲突、启动模块配置不全共同导致,从启动命令可定位两个直接诱因:

  • 类路径重复加载了两套不同存储路径的JavaFX依赖:一套位于C:\Users\lilian.carion\Documents\javafx-sdk-18.0.1\lib,另一套位于C:\Users\lilian.carion\Downloads\javafx\,双份依赖混用会触发Java模块系统的访问权限校验异常
  • 启动参数--add-modules仅声明了javafx.controls模块,代码中加载FXML用到的javafx.fxml模块未被显式引入,Java 17强模块隔离机制会阻止跨模块的内部类访问。
修复步骤
  • 清理重复依赖
    打开IDEA的File -> Project Structure,在Libraries、Modules -> Dependencies配置页中,删除C:\Users\lilian.carion\Downloads\javafx\路径下的整套JavaFX依赖,仅保留Documents目录下18.0.1版本的JavaFX SDK,彻底消除版本/路径冲突。
  • 修正VM启动参数
    打开Main类的运行配置,找到VM options输入项,替换原有参数为以下内容,补全依赖模块:
    --module-path "C:\Users\lilian.carion\Documents\javafx-sdk-18.0.1\lib"
    --add-modules javafx.controls,javafx.fxml
    
    注意:不要将JavaFX SDK下的jar包手动添加到项目类路径(classpath),模块路径下的依赖会被Java自动识别,双路径加载反而会触发模块访问错误。
  • 修正代码逻辑(可选建议)
    现有main方法中launch(args)后的数据库操作代码不会按预期执行:launch()方法会阻塞当前线程直到JavaFX窗口关闭,且运行环境销毁后再调用数据库连接容易触发额外异常,相关业务逻辑建议移动到控制器初始化方法或start()生命周期方法中执行。
  • 清理缓存验证
    执行File -> Invalidate Caches...,勾选清除项目缓存后重启IDEA,重新编译项目后启动即可。
后续避坑

IDEA本地运行配置默认存储在项目.idea/runConfigurations目录下,若该目录被Git忽略,切换分支后配置会丢失。可在运行配置页勾选Store as project file,将配置纳入Git版本管理,避免重复配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:12:22