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

JDK11执行mvn clean install时SpotBugs报Security Manager相关错误

问题现象

执行mvn clean install构建命令时抛出如下报错:

spotbugs failed: java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release

已知环境信息:

  • 本地安装JDK版本:JDK 11
  • 项目配置指定编译/运行JDK版本:JDK 11
  • 设备环境:搭载M1芯片的MacBook Pro
  • 公开资料显示该报错此前普遍在JDK 17及以上版本环境中出现

报错截图:
报错截图

问题产生原因

报错触发的核心逻辑是低版本SpotBugs Maven插件主动调用System.setSecurityManager()接口,和本地运行的JDK大版本无绝对绑定关系:
M1芯片Mac的早期ARM架构适配版JDK 11(多为2022年上半年之前发布的构建版本)提前合入了高版本JDK中JEP 411对应的安全管理器弃用校验逻辑,调用安全管理器设置接口时会直接抛出UnsupportedOperationException,触发逻辑和JDK 17及以上版本完全一致,因此会出现明明配置使用JDK 11,却抛出高版本JDK专属报错的现象。4.7.0以下版本的SpotBugs插件未做该场景的兼容,遇到上述校验就会直接中断构建。

解决方法

按优先级从高到低可选择以下方案:

  • 升级SpotBugs Maven插件到4.7.0及以上版本,高版本已适配安全管理器弃用逻辑,不会主动调用相关API触发报错。在项目pom.xml中修改插件配置即可,参考配置如下:
<plugin>
    <groupId>com.github.spotbugs</groupId>
    <artifactId>spotbugs-maven-plugin</artifactId>
    <version>4.7.3.4</version>
</plugin>
  • 如果暂时无法升级插件版本,可在执行构建命令时追加JVM参数,跳过安全管理器的相关校验,命令示例:
    mvn clean install -Dspotbugs.jvmArgs="-Djava.security.manager=allow"
  • 检查本地安装的JDK 11版本,如果是2022年之前发布的早期ARM适配JDK 11,替换为当前最新维护的JDK 11 ARM架构发行版即可,无需调整项目配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:39:19