问题描述:

在用公司的工具搭建项目时,由于使用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文件查看

关于项目中Spring版本与jdk1.8兼容问题解决的更多相关文章

  1. Maven项目中Spring整合Mybatis

    Maven项目中Spring整合Mybatis 添加jar包依赖 spring需要的jar包依赖 <dependency> <groupId>org.springframewo ...

  2. 初识quartz 并分析 项目中spring整合quartz的配置【原创+转载】

    初识quartz 并分析 项目中spring整合quartz的配置[原创+转载]2018年01月29日 12:08:07 守望dfdfdf 阅读数:114 标签: quartz 更多个人分类: 工具 ...

  3. VS2015ASP.NET MVC5项目中Spring.NET配置方法(超详细)

    首先,在ASP.NET MVC5项目右键,如下图所示,选择“管理Nuget程序包...” 然后,在弹出的页面的搜索框中输入“spring.web”,在返回结果中选择Spring.Web和Spring. ...

  4. web项目中遇到的Maven包依赖冲突问题解决

      在搭建web项目时,出现一个比较诡异的问题,任何JSP页面突然都不能够正常地显示,系统爆出HTTP:500(服务器内部错误)的页面   HTTP Status 500 - java.lang.No ...

  5. 第二周——1.项目中MySQL版本问题

    1.版本升级 经组长推荐,本地安装的是mysql-8.0.11,而主项目用的还是版本5.6, 因此需要升级版本. 首先,更新驱动:下载mysql-connector-java-8.0.11,将E:\P ...

  6. 项目中Spring注入报错小结

    之前在做单元测试时采用注解方式进行service对象的注入,但运行测试用例时对象要注入的service对象总是空的,检查下spring配置文件,我要配置的bean类xml文件已经包含到spring要加 ...

  7. springboot项目中jdk版本的问题

    几经周折,在idea中修改了多次jdk编译为1.8,可是一编译就恢复到默认的1.7版本. 在经过多次这个博客的修改内容: https://blog.csdn.net/li396864285/artic ...

  8. 如何在Go项目中输出版本信息?

    我们经常在使用CLI工具的时候,都会有这样的参数输出: ``` ➜ ~ docker version Client: Docker Engine - Community Version: 18.09. ...

  9. 项目中spring容器加载的问题

    今天做一个项目采用的是传统架构,没有采用分布式,部署时出现了异常,信息是: org.springframework.beans.factory.NoSuchBeanDefinitionExceptio ...

随机推荐

  1. eclipse下如何查看Android源码

    1.查看安卓源代码: (1)首先要先下载安装源代码,网上有很多地方都可以下,百度"安卓源代码下载就行了",这里要注意版本,比如我这里用的是4.0.3的版本,对应的是android- ...

  2. 为什么不建议把数据库部署在Docker容器内?

    近2年Docker非常的火热,各位开发者恨不得把所有的应用.软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程, ...

  3. Vs2017编译器提示:不能将“const char *”类型的值分配到“char *”类型的实体

    在项目属性中将语言符合模式改成否即可

  4. C#实现 Server-sent Events

    基于http协议交互的推送方法大概方法如下: 轮询(ajax),比较耗费服务器资源.COMET方式(COMET 技术并不是 HTML 5 ) websocket 双向数据推送,灵活,功能强大 Serv ...

  5. 【JDBC核心】获取数据库连接

    获取数据库连接 要素一:Driver 接口实现类 Driver 接口: java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口.这个接口是提供给数据库厂商使用的,不同数据库厂商提 ...

  6. Openstack glance 镜像服务 (五)

    Openstack glance 镜像服务 (五) 引用: 官方文档glance安装 https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/ ...

  7. 【高级排序算法】1、归并排序法 - Merge Sort

    归并排序法 - Merge Sort 文章目录 归并排序法 - Merge Sort nlogn 比 n^2 快多少? 归并排序设计思想 时间.空间复杂度 归并排序图解 归并排序描述 归并排序小结 参 ...

  8. innodb日志文件大小

    innodb是用多个文件作为一组循环日志,通常不需要修改默认的日志数量,只修改每个日志文件的大小即可,要修改日志文件大小,需要完全关闭mysql,将旧的日志文件移到其他地方保存,重新配置参数,然后重启 ...

  9. java创建线程安全的类

    如果一个对象想要被多个线程安全的并发访问,那么这个对象必须是或线程安全的或事实不可变的或由锁来保护的. 1.java监视器模式 大多数对象都是组合对象.当从头开始构建一个类,或者将多个非线程安全的类组 ...

  10. LR参数

    一.LR函数 : lr_start_transaction:   为性能分析标记事务的开始 lr_end_transaction: 为性能分析标记事务的结束:事务名称与事务开始时保持一致 lr_ren ...