关于项目报错Dynamic Web Module 3.0 requires Java 1.6 or newer 的解决方法

起因:今天使用maven创建web项目的时候发现项目上老是有个红X,错误如下图所示,虽然项目能正常运行起来,但是LZ的强迫症发作,不弄掉就觉得心里不舒服,于是上网查了攻略,几经周折最终大功告成,现在就把我的解决方法记录下来,防止以后再次发生。

 

 

解决步骤:

1.打开web.xml文件

把头部中2.3

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_3.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_3.xsd"
    id="WebApp_ID" version="2.3">
复制代码

改为3.0

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
复制代码

 

2.关闭eclipse   打开项目.settings目录下的org.eclipse.jdt.core.prefs

复制代码
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.5
复制代码

把1.5改为1.7

复制代码
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.7
复制代码

 

3.打开org.eclipse.wst.common.component

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="test">
        <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
        <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
        <property name="context-root" value="test"/>
        <property name="java-output-path" value="/test/target/classes"/>
    </wb-module>
</project-modules>
复制代码

将1.5.0改为1.7.0

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.7.0">
    <wb-module deploy-name="test">
        <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
        <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
        <property name="context-root" value="test"/>
        <property name="java-output-path" value="/test/target/classes"/>
    </wb-module>
</project-modules>
复制代码

 

4.打开org.eclipse.wst.common.project.facet.core.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="java" version="1.5"/>
  <installed facet="jst.web" version="2.3"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
复制代码

将1.5改为1.7    2.3改为3.0

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="java" version="1.7"/>
  <installed facet="jst.web" version="3.0"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
复制代码

 

此时重新打开eclipse,一般人到这个时候红xx已经解决了,但是LZ打开一看红x竟然还在,心拔凉拔凉的,没办法,生活还是要继续,于是LZ又继续找啊找,又被我找到个方法

5.在pom.xml中增加一段代码

复制代码
    <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <!-- 指定source和target的版本 -->
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
复制代码

 

此时红x依旧在,哭死,感觉生活没了希望。最后右击项目 Maven -> Update Project 红x居然消失了,真开心,虽然不知道什么原理,但是先记录一下,以防以后又出现这种请款。


自己也碰到这问题。直接转  懒得写

当您在开发动态Web项目时,如果遇到错误信息 "Dynamic Web Module 5.0 requires Java 1.8 or newer",这意味着您的项目配置要求使用Java 1.8或更高版本的Java运行环境。解决这个问题的步骤如下: 1. **检查Java版本**: - 打开命令行工具(在Windows上是CMD或PowerShell,在Mac或Linux上是Terminal)。 - 输入命令 `java -version` 并回车。这将显示当前安装的Java版本信息。 - 如果显示的版本低于1.8,则需要升级Java版本。 2. **升级Java版本**: - 访问Oracle官网或其他Java分发网站下载Java 1.8或更高版本的安装包。 - 运行安装程序并遵循指示完成安装。 - 安装完成后,重新打开命令行工具并再次检查Java版本,确保升级成功。 3. **修改项目配置**: - 打开您的项目,在项目属性中找到与Java版本相关的配置选项。 - 将项目Java版本设置为1.8或更高。 - 如果您的项目使用的是Maven或Gradle构建工具,那么您可能需要修改项目的构建配置文件(pom.xml或build.gradle),确保其中的`source`和`target`标签设置为1.8或更高。 - 例如,在Maven的pom.xml中,您应该有如下配置: ```xml <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> ``` - 保存更改并重新编译项目。 4. **清理和重建项目**: - 在IDE中进行清理操作,以确保所有旧的字节码被清除。 - 重新构建您的项目以应用新的Java版本设置。 5. **检查服务器配置**: - 如果您的Web项目部署在特定的Web服务器上(例如Tomcat, Jetty等),请确保服务器配置也是以Java 1.8或更高版本运行。 完成以上步骤后,您的项目应该能够满足Dynamic Web Module 5.0对于Java版本的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值