Jdk版本的判定(来自Spring源码)

/*
 * Copyright 2002-2004 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.core;

/**
 * Helper class used to find the current Java/JDK version.
 * Usually we want to find if we're in a 1.4 or higher JVM.
 * (Spring does not support 1.2 JVMs.)
 * 
 * @author Rod Johnson
 * @author Juergen Hoeller
 */
public 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;

	private static String javaVersion;

	private static int majorJavaVersion = JAVA_13;

	static {
		javaVersion = System.getProperty("java.version");
		// should look like "1.4.1_02"
		if (javaVersion.indexOf("1.4.") != -1) {
			majorJavaVersion = JAVA_14;
		} else if (javaVersion.indexOf("1.5.") != -1) {
			majorJavaVersion = JAVA_15;
		} else if (javaVersion.indexOf("1.6.") != -1) {
			majorJavaVersion = JAVA_16;
		} else if (javaVersion.indexOf("1.7.") != -1) {
			majorJavaVersion = JAVA_17;
		}
		// else leave as 1.3 default
	}

	/**
	 * Return the full Java version string, as returned by
	 * <code>System.getProperty("java.version")</code>.
	 */
	public static String getJavaVersion() {
		return javaVersion;
	}

	/**
	 * Get the major version code. This means we can do things like
	 * <code>if (getMajorJavaVersion() < JAVA_14)</code>.
	 * 
	 * @return a code comparable to the JAVA_XX codes in this class
	 * @see #JAVA_13
	 * @see #JAVA_14
	 * @see #JAVA_15
	 */
	public static int getMajorJavaVersion() {
		return majorJavaVersion;
	}

}
spring2.5+JDK1.8 版本报错的解决办法(修改后jar) 今天遇到一个工程,启动时报这个错!可明明我的JDK是1.8呀。 原来这个工程的spring是2.5,网上说spring2.5必须要求JDK1.5以上版本,但不能兼容1.8。 没道理会这样吧? 原来spring-2.5.5.jar有一个检查JDK版本号的类,编码质量略低,导致1.8被误认为未达到“JDK1.5以上版本”这个要求。。。 org.springframework.core.JdkVersion 于是找到一个spring-core-3.x.RELEASE.jar,用其中的JdkVersion这个类替换spring-2.5.5.jar对应class,问题解决! 注意:别用spring-core-4.x.RELEASE.jar,JdkVersion.isAtLeastJava15()方法已经没有了! 立即下载

相关推荐

C++11并发与多线程笔记(2) 线程启动、结束,创建线程多法、join,detach

第二节 线程启动、结束,创建线程多法、join,detach 一、范例演示线程运行的开始 程序运行起来,生成一个进程,该进程所属的主线程开始自动运行;当主线程从main()函数返回,则整个进程执行完毕 主线程从main()开始执行,那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个函数运行完毕,线程也结束运行 整个进程是否执行完毕的标志是:主线程是否执行完,如果主线程执行完毕了,就代表整个进程执行完毕了,此时如果其他子线程还没有执行完,也会被强行终止【此条有例外,以后会解释】 创建

qq_38231713的博客 1万+

org.springframework.beans.factory.BeanDefinitionStoreException

整合Spring时报错如下: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [applicationContext.xml]; nested exception is java.la

厚积而薄发,谋定而后动 3106

Seedance2.5本地部署指南:从环境配置到生产优化的完整实践

在 AI 内容生成领域,本地部署方案正逐渐成为开发者和技术团队关注的焦点。Seedance2.5 作为一款支持图像和视频生成的 AI 工具,其完全离线运行的能力解决了云端服务在数据隐私、使用成本和访问稳定性方面的痛点。对于需要处理敏感内容、频繁生成素材或希望完全掌控生成流程的技术人员来说,掌握本地部署方法具有实际价值。 本文将以 Seedance2.5 的本地部署为例,详细介绍从环境准备、依赖配置到运行验证的完整流程,同时深入分析关键参数配置、常见问题排查方法以及生产环境下的优化建议。通过实际部署过程,理解

weixin_33139275的博客 731

Context namespace element 'component-scan' and its parser class [org.springframework.context.annotat...

异常信息如下: 错误: Unexpected exception parsing XML document from class path resource [spring/applicationContext-db.xml]; nested exception is java.lang.IllegalStateException: Context namespace element 'co...

weixin_34185512的博客 478

Sigrity Power DC Package Multi-Resistor Compact ET Model Extraction模式提取封装基板电热阻模型

DIE(定义DIE的参数):material设置为silicon(硅),Attach material(贴片的材料,设置为Die Attach),Attach thickness(贴片的材料的厚度,厚度设置为0.001mm,点击ok。Cap为覆盖材料,Material定义材料类型,thickness定义厚度,length和width定义长宽,Adhesive Material为胶的材料,Adhesive Material为胶的厚度,本例不定义,跳过即可。

weixin_54787054的博客 439

YOLO26优化:注意力魔改 | SKAttention注意力,自适应地调整其感受野大小,效果优于SENet

SKAttention输入自适应地调整其感受野大小的能力

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 250

项目启动遇到一个新问题Context namespace element 'component-scan' and its parser class [org.springframework.cont...

org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [applicationContext.xml]; nested exception is java.lang.IllegalS...

diyong4740的博客 862

AgentScope Java 2.0 项目实战:从零构建企业级自主Coding Agent

本文基于 AgentScope Java 框架,完整拆解两个生产级 AI Agent 项目的从零开发全过程。其一是企业级自主编码机器人(agentscope-codingagent),支持 Issue→PR 自动实现、PR Code Review、Docker 沙箱隔离执行与多通道接入;其二是个人 AI 助手管理平台(agentscope-paw),采用 Spring Boot + React 全栈架构,支持多 Agent、技能市场与多 IM 通道。

program哲学 838

Context namespace element ‘component-scan‘ and its parser class

检查了 spring 版本、jdk版本 都没有问题、最后检查pom依赖 、发现duboo依赖中也会依赖spring 相关jar包 、导致jar冲突。

weixin_42067376的博客 361

OceanBase容量统计:租户、数据库、表大小

🍎 数据库版本:OceanBase V4。

Sebastien23的博客 1401

【打卡帖】7日玩转ESP32——(第4日) 串口的输入输出

【福利帖】7日玩转ESP32——(第4日) 串口的输入输出

1377

Spring源码阅读1 AOP如何判定是否可以使用JDK动态代理

Spring DefaultAopProxyFactory源码 或许大家会奇怪了,不就是判断是不是代理的接口就可以了吗?其实并不是这么简单。 直接上代码。 @Override public AopProxy createAopProxy(AdvisedSupport config) throws AopConfigException { if (config.isOptimize() || config.isProxyTargetClass() || hasNoUserSuppliedProxyIn

我只是无聊 908

商用车重型多挡位机械式变速器(AMT)结构设计与仿真分析

本文针对商用车重型AMT变速器开展结构设计与仿真分析。设计采用12挡双中间轴结构,匹配400kW柴油发动机,最大扭矩2000Nm。通过等比级数分配传动比(头挡14.5,最高挡0.78),采用主副箱组合实现多挡位。双中间轴结构可抵消径向力,提升承载能力。关键设计包括:235mm中心距、4.5-5.0mm齿轮模数、锁环式同步器和复合润滑系统。通过Python参数化建模进行强度校核,计算显示中间轴在2000Nm工况下等效应力满足安全系数要求(屈服强度850MPa,安全系数≥2)。该设计解决了传统MT变速器操作强度

AI的内部世界的博客 113

IntelliJ IDEA导入Spring源码

工欲善其事,必先利其器,研究spring源码,从导入源码开始吧。本文记录自己 Windows下 IDEA 导入源码折腾的过程。 spring源码构建参见 官方文档https://github.com/spring-projects/spring-framework/wiki/Build-from-Source 1、下载spring源码 安装git,Spring源码现在在github托管,s......

Zephyrzh的博客,关注【蚕师】成为大厂技术人 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

spring与jdk对应版本关系

文章目录前言版本对应 前言 最近在搭建spring源码环境,一直提示使用jdk17,翻看官方文档介绍,发现最新的spring已经到了spring6.0,为此查找了下spring与jdk对应版本关系 版本对应 Spring Framework 6.0.x:JDK 17-21(预期) Spring Framework 5.3.x:JDK 8-19(预期) Spring 框架 5.2.x:JDK 8-15 Spring 框架 5.1.x:JDK 8-12 Spring 框架 5.0.x:JDK 8-10 Spri

qq_36908783的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Spring源码学习环境搭建(详细版本)

spring框架源码学习环境搭建教程

AKA_Jason的博客 5930

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java_JDK8到JDK21各版本发行时间及重要特性

一直以来,Java8 都是 Java 社区心头的痛,Java8提供了很多特性,比如Lambda 表达式、Optional 类,加上Java8超长的支持时间,都导致了JDK8的使用至今。因为 Java 届的霸主框架 SpringBoot,选择了最小支持的 Java lts 版本,就是最新的 Java17。从 JDK 诞生到现在,还在长期支持的版本主要有 JDK 7、JDK 8 、JDK 11以及 JDK 1,JDK 17 将是继 Java 8 以来最重要的LTS版本,是 Java 社区八年努力的成果。

草青工作室 的专栏 1万+

Spring:Spring源码下载、保存、编译

Spring源码下载、编译Spring源码下载Spring源码编译1、新增下载源地址2、修改依赖地址三级目录 Spring源码下载 注意:Spring源码使用的是Gradle,而不是Maven。因此下载Spring源码之前可以先安装Gradle,参考:Gradle的下载、安装和配置环境。 Spring源码gitee地址:https://gitee.com/mirrors/Spring-Framework。 Spring源码gitee仓库地址: https://gitee.com/mirrors/Spring

weixin_44843569的博客 4445

eclipse导入JDK源码

1.一直想好好看看jdk的源码,虽然可以直接解压jdk安装目录下的src.zip文件后看,但是终究不方便;后来知道使用eclipse开发时可以直接查看底层源码,这里就总结了一下网上找到的 方法,下面就和大家分享:  相信很多朋友遇到过这样的问题:开发过程中会经常查看所引用的类(接口或方法)的源码,但是往往在查看JDK中的类(接口或方法)时出现提示页面“Source not found”,这是因为

geek-wk 1万+

Spring源码之idea导入Spring源码

idea导入Spring源码

qq_43418737的博客 1949

JDK1.8及Spring5.0.x源码环境搭建

源码阅读是程序员进阶必不可少的一环,对于源码的阅读我的建议是按需加载,日积月累,准备长期作战,就像数据结构和算法一样,刷题学习可能是一个需要长期坚持的事情,不仅仅是为了面试更是为了提升基本功。但是凡事不可急功近利,一口吃不成胖子,源码阅读在初期应该是先看自己工作中用到的一小部分,感兴趣或者有疑惑的一小部分,然后随着工作经验的增加,基础知识的夯实,再逐渐系统化学习。好的源码能给我们带来很多启发,也能让我们不仅是会用工具或框架,更能用好,能解决疑难。阅读源码需要一定的知识储备,比如设计模式,数据结构和算法,操作

enjoycoding悦码 2285

Spring源码搭建-踩坑之后的详细方案

Spring源码构建过程真的是太坑了。对于没学过gradle的同学一点都不友好接下来就是我踩坑了无数遍才成功的构建过程。希望可以帮助到大家,少走一点弯路。构建不成功也就容易放弃研究Spring源码了

abc2675811870的博客 1110

[Spring源码]——Spring源码环境搭建

带你从头搭建Spring源码环境

热爱编程的机械生的救赎 1439

spring源码学习 八:代理之JDK

上一篇文章我们介绍了spring中用的两种代理技术:JDK和Cglib,这篇文章我们就深入学习JDK的代理是如何实现的,下一篇文章我们再深入学习Cglib的代理。

nichilemei的博客 1283

IDEA搭建最新Spring源码环境基于Gradle、JDK11

Spring的地位不言而喻,很多牛逼的大佬都研究过它,相信在面试中大家也不止一次被问到说说IOC、AOP、Spring的启动流程、Bean的初始化流程、循环依赖等问题。光看别人写的八股文,没看过源码,看着看着就不知道讲什么了,只有自己去研究下才知道别人在说什么,就算不能理解的很透彻,起码死记硬背应该容易点了。所以搭建spring源码环境是很有必要的,很早就想过搭建,但是一直没有时间(忙着玩了),Spring能搭建好,也可以搭建SpringBoot,面试中基本上离不开这两个东西。 废话不多说开干。 最新版的S

weixin_49118892的博客 1089

springboot依赖springframework版本关系&springframework各版本框架源码及与jdk版本的对应关系

springboot依赖springframework版本关系&springframework各版本框架源码及与jdk版本的对应关系

weixin_45738731的博客 4951
下一篇: 路径字符替换(来自Spring源码)
gufengjava
博客等级 码龄16年 1粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值