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文件查看

  • 相关阅读:
    Java基础
    第11章 处理概括关系
    第10章 简化函数调用
    第9章 简化条件表达式
    第8章 重新组织数据(暂略)
    第7章 在对象之间搬移特性
    第6章 重新组织函数
    【剑指offer】57
    【每日一题-leetcode】45.跳跃游戏 ||
    【左神算法】随机+荷兰国旗优化版快排
  • 原文地址:https://www.cnblogs.com/aixing/p/13327581.html
Copyright © 2011-2022 走看看