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

使用Iguana Beta版编译代码时遇superclass access check failed错误求助

解决Iguana Beta编译时的java.lang.IllegalAccessError问题

java.lang.IllegalAccessError: 超类访问检查失败:类org.jetbrains.kotlin.kapt3.base.javac.KaptJavaCompiler(位于未命名模块@0x603e2fc3)无法访问类com.sun.tools.javac.main.JavaCompiler(位于模块jdk.compiler),因为模块jdk.compiler未将com.sun.tools.javac.main导出到未命名模块@0x603e2fc3

可行解决方案:

  • 降级到JDK 8:JDK 9及以上引入的模块系统限制了内部API的访问权限,Kapt在JDK 8环境下不会触发这类模块访问限制问题,直接切换JDK版本即可解决。
  • 添加JVM参数开放模块访问:如果必须使用高版本JDK,在编译配置中添加以下参数,强制让jdk.compiler模块把指定包导出到未命名模块:
    --add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
    
    Gradle项目中配置方式:
    Groovy脚本(build.gradle):
    tasks.withType(JavaCompile) {
        options.compilerArgs.add('--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED')
    }
    
    kapt {
        javacOptions {
            option('--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED')
        }
    }
    
    Kotlin脚本(build.gradle.kts):
    tasks.withType<JavaCompile> {
        options.compilerArgs.add("--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED")
    }
    
    kapt {
        javacOptions {
            option("--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED")
        }
    }
    
  • 升级Kotlin和Kapt版本:Iguana Beta可能与旧版Kotlin存在兼容性问题,尝试升级到最新稳定版Kotlin,新版本的Kapt大概率修复了高JDK环境下的模块访问问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:13:13