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

Maven项目启动报错:module java.base does not 'opens java.lang'

解决方案

一、修正直接启动的命令参数位置

你之前的命令把JVM参数放在了jar包后面,这是错误的——JVM参数必须放在-jar之前才能被JVM识别生效。正确的启动命令如下:

java --add-opens java.base/java.lang=ALL-UNNAMED -jar target\MyProject-0.0.1-SNAPSHOT.jar

二、在pom.xml中配置永久生效的JVM参数

从报错里的dispatcherServlet来看,你的项目大概率是Spring Boot项目,可通过spring-boot-maven-plugin插件把JVM参数打包进jar,后续启动无需手动添加:

  1. 打开项目根目录下的pom.xml,找到<build>节点,在<plugins>中添加或修改spring-boot-maven-plugin的配置:
<build>
    <plugins>
        <!-- 保留你原有的其他插件配置 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <jvmArguments>
                    --add-opens java.base/java.lang=ALL-UNNAMED
                </jvmArguments>
            </configuration>
        </plugin>
    </plugins>
</build>
  1. 重新打包项目:
mvn clean package
  1. 启动新打包的jar,无需额外加参数:
java -jar target\MyProject-0.0.1-SNAPSHOT.jar

如果你的项目不是Spring Boot,而是普通Maven Web项目,需要在部署的容器(比如Tomcat)的启动脚本中添加--add-opens java.base/java.lang=ALL-UNNAMED这个JVM参数,具体操作取决于你使用的容器类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:22:38