java 1.5 and higher_…… are only available on JDK 1.5 and higher 错误(spring 的jdk版本检测在jdk 8下的修订)...

部署运行你感兴趣的模型镜像

java.lang.IllegalStateException: Context namespace element 'component-scan' and its parser class [org.springframework.context.annotation.ComponentScanBeanDefinitionParser] are only available on JDK 1.5 and higher

项目中用的是spring低版本(2.5.6),今天用jre 8测试了一下,发现错误:

Unexpected exception parsing XML document from class path resource [applicationContext-dao.xml]; nested exception isJava.lang.IllegalStateException: Context namespace element ‘annotation-config’ and its parser class [org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser] are only available on JDK 1.5 and higher

看源码是org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser自动检测,jdk版本检测时需要jre1.5以上版本,但是JdkVersion只检查到了1.7,jre1.8 时不匹配任何jdk,按如下方法处理,可以解决问题。

1、在项目中创建一个package为org.springframework.core

2、在该package下面新建JdkVersion.java,内容如下:

package org.springframework.core;

public abstract class JdkVersion {

public static final int JAVA_13 = 0;

public static final int JAVA_14 = 1;

public static final int JAVA_15 = 2;

public static final int JAVA_16 = 3;

public static final int JAVA_17 = 4;

//for jre 1.8

public static final int JAVA_18 = 5;

private static final String javaVersion = System

.getProperty("java.version");

private static final int majorJavaVersion;

public static String getJavaVersion() {

return javaVersion;

}

public static int getMajorJavaVersion() {

return majorJavaVersion;

}

public static boolean isAtLeastJava14() {

return true;

}

public static boolean isAtLeastJava15() {

return getMajorJavaVersion() >= 2;

}

public static boolean isAtLeastJava16() {

return getMajorJavaVersion() >= 3;

}

static {

//for jre 1.8

if (javaVersion.indexOf("1.8.") != -1) {

majorJavaVersion = 5;

}else if (javaVersion.indexOf("1.7.") != -1) {

majorJavaVersion = 4;

} else if (javaVersion.indexOf("1.6.") != -1) {

majorJavaVersion = 3;

} else if (javaVersion.indexOf("1.5.") != -1) {

majorJavaVersion = 2;

} else {

majorJavaVersion = 1;

}

}

}

3、到项目的WEB-INF/classes 下面找到对应的package中的JdkVersion.class文件

4、将项目中的spring-core-2.5.6.jar拷贝出来打开,然后将JdkVersion.class替换jar包中的该文件。

5、将修改后的spring-core-2.5.6.jar再覆盖到项目中。

这样,再启动项目就不会出现错误了。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值