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

NetBeans中新建Maven Web项目无法运行问题求助

解决方案

1. 升级Maven War插件版本

你的maven-war-plugin:2.3版本过于老旧,完全不兼容JDK9+引入的模块系统,这是导致报错的核心原因之一。直接在项目pom.xml中替换为最新稳定版插件配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.4.0</version> <!-- 可替换为Maven仓库中的最新稳定版本 -->
        </plugin>
    </plugins>
</build>

2. 添加JDK模块访问权限参数

JDK22的模块化机制限制了内部API的访问,你需要显式开放java.base/java.util包给未命名模块:

  • 编译阶段:在pom.xml中配置maven-compiler-plugin添加编译参数(注意Jakarta EE 8要求源码级别为JDK8,保持source和target为8):
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <source>8</source>
        <target>8</target>
        <compilerArgs>
            <arg>--add-opens=java.base/java.util=ALL-UNNAMED</arg>
        </compilerArgs>
    </configuration>
</plugin>
  • 运行阶段:在NetBeans的Tomcat运行配置中,添加VM参数:
--add-opens=java.base/java.util=ALL-UNNAMED

3. 解决Tomcat与JDK的兼容性问题

Tomcat 9官方仅支持JDK 8至JDK 17,JDK 22不在其兼容范围内,后续可能出现更多隐性问题。建议二选一:

  • 降级JDK至17(LTS版本,稳定且完全适配Tomcat 9);
  • 升级Tomcat至10.1.x版本(支持Jakarta EE 8,且兼容JDK 11+)。

4. 校验Maven JDK配置

确保NetBeans中Maven使用的JDK版本与项目一致,或在Maven的settings.xml中添加配置强制JDK编译级别:

<profile>
    <id>jdk-compat</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <maven.compiler.release>8</maven.compiler.release>
    </properties>
</profile>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:33:21