zoukankan      html  css  js  c++  java
  • 关于项目中Spring版本与jdk1.8兼容问题解决

    问题描述:
    在用公司的工具搭建项目时,由于使用Spring框架,同时要求jdk版本为1.8;当部署完成以后,项目总是无法运行,会报错:

    Context namespace element ‘annotation-config’ and its parser class [org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser] are only available on JDK 1.5 and higher

    刚开始解决的时候,花了很长时间都遇到各种问题,后来,静下心来,慢慢一步一步逐条解决,最后终于解决了问题,现在项目已经可以正常运行;

    将自己解决的方式做记录,留待以后参考。


    1:首先,我们在项目中新建一个包(package),包名:org.springframework.core;

    2:然后,我们在新建的包下面新建一个Java类(class),类名JdkVersion.java;

    3:编辑新建的类:

    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;
    
        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 {
    
            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;
            }
        }
    }

    4:编辑完类以后,找到项目路径:WEB-INF/classes;找到对应package中的.class文件;
    即:org.springframework.core 包下的JdkVersion.class文件。

    5:将项目中的spring.jar拷贝出来打开,然后将JdkVersion.class替换jar包中的该文件。

    6:将修改后的spring.jar再覆盖到项目中。

    在运行完Java类之后,我由于好奇,特别想查看一下.class类文件里的内容,然后就开始寻找各种方式查看编译后的文件。

    苍天不负有心人,花了一些时间,终于找到了一个网上在线查看编译文件的网站。
    贴出来备录:
    编译后的class文件查看

  • 相关阅读:
    Python定时任务sched(一)
    Python使用selenium进行爬虫(一)
    有关在python中使用Redis(二)
    有关JSOUP学习分享(一)
    jsoup爬虫,项目实战,欢迎收看
    有关在python中使用Redis(一)
    俄罗斯方块代码
    Android !No Launcher activity found!错误
    让jar程序在linux上一直执行(转)
    MyEclipse打包jar 并加入第三方包
  • 原文地址:https://www.cnblogs.com/aixing/p/13327581.html
Copyright © 2011-2022 走看看