Context namespace element 'component-scan' and its parser class [org.springframework.context.annotation.ComponentScanBeanDefinitionParser] are only available on JDK 1.5 and higher
不是,这个应该是你的软件配置原因, 如果你是eclipse,你看看编译,是哪个版本的,如果是 idea,可以看看idea里面配置jdk的版本是多少。估计你这使用
的是eclipse,应该是你这个没有配置,我经常遇到。
https://blog.csdn.net/u010523770/article/details/52136030
idea里面的话:
比spring的4.3.14版本号小的版本支持到jdk1.7,所以看一下你的spring的版本,注意spring本身有版本限制
https://www.cnblogs.com/ld-bk/p/5067452.html
不是你环境版本低,而是你用开发工具导入的项目,项目设置的JDK版本低,你百度设置项目JDK版本,把项目的jdk在编辑器里面设置一下
spring的版本太低了(我当时用的spring2.5)spring2.5出来的时候,jdk1.8还没有出来,所以spring2.5不支持jdk1.8
org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser自動檢測,jdk版本檢測時需要jre1.5以上版本,但是JdkVersion只檢查到了1.7,jre1.8 時不匹配任何jdk, 修正如下,問題解决
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;
}
}
}
rg.springframework.context.annotation.AnnotationConfigBeanDefinitionParser这个包在这个文件在org.springframework.core包下。