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

Java 16 Maven环境GSON出现Invalid Flag --add-opens随机报错如何解决

问题根源

你错误地将JVM运行参数配置到了编译阶段参数中:--add-opens系列参数是Java程序启动时的JVM参数,不属于javac编译器的合法参数。你在maven-compiler-plugin的compilerArgs中添加了该参数,IDEA同步Maven配置时会概率性将该参数传递给编译流程,因此出现随机报错的问题。

可行修复方案
  • 第一步:修正pom.xml配置
    删除maven-compiler-plugin下的<compilerArgs>完整配置块,maven-surefire-plugin和maven-failsafe-plugin中的argLine配置可以保留,用于单元测试、集成测试阶段的JVM参数传递。
    修正后的maven-compiler-plugin配置如下:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
            <source>16</source>
            <target>16</target>
        </configuration>
    </plugin>
    
  • 第二步:统一配置应用启动参数
    在IntelliJ IDEA右上角的运行/调试配置中,找到你项目的启动配置,在VM options栏单独添加--add-opens java.base/java.time=ALL-UNNAMED即可。如果项目有多个启动入口,可以修改IDEA的「运行配置模板」,给所有Java应用启动配置默认添加该参数,避免重复配置。
  • 第三步:清除IDE缓存生效
    点击IDEA顶部菜单栏File → Invalidate Caches...,勾选清除文件系统缓存选项后重启IDE,重新导入Maven项目即可彻底解决随机报错问题。
可选根因解决方案

如果你不想额外维护JVM参数,可以直接将GSON依赖升级到2.9.0及以上版本,高版本GSON已经完成Java 9+模块系统适配,不需要额外添加--add-opens参数即可正常序列化/反序列化java.time包下的类,从根源上避免该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:27:00