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

Spring Boot 2.0 Java示例代码运行失败,java.base模块权限不足报错

问题根因

该错误是Spring Boot版本与本地JDK版本不兼容导致的:你当前使用的Spring Boot 2.0.0.RELEASE内置的Spring Framework 5.0.x版本仅原生支持Java 8,而你本地运行环境是Java 9及以上版本,Java 9引入的JPMS模块系统限制了反射访问权限,导致CGLIB动态生成类时无法调用ClassLoader的defineClass方法。

两种可行解决方案

方案一(推荐,长期适配):升级Spring Boot版本

将项目的Spring Boot版本升级到2.4.x及以上稳定版本,对应内置的Spring Framework 5.3.x+原生适配Java 9及以上版本的模块系统,无需额外配置即可正常运行。

  • Maven项目修改pom.xml父依赖版本:
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.15</version>
    <relativePath/>
</parent>
  • Gradle项目修改build.gradle插件版本:
plugins {
    id 'org.springframework.boot' version '2.7.15'
    id 'io.spring.dependency-management' version '1.0.15.RELEASE'
    id 'java'
}

方案二(临时兼容,不改依赖版本):添加JVM启动参数

如果暂时不需要升级Spring Boot版本,可以给项目添加JVM启动参数,手动开放java.lang包的访问权限:

--add-opens java.base/java.lang=ALL-UNNAMED

不同IDE配置入口:

  • IDEA:右上角运行配置 -> Modify options -> Add VM options -> 粘贴上述参数后保存
  • Eclipse:运行配置 -> Arguments -> VM arguments栏添加上述参数

配置完成后重新启动项目即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:36:02