`

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

}
分享到:
评论

相关推荐

    spring对应jdk1.8的jar包

    然而,随着Java版本的升级,有时候不同版本的Spring和JDK之间可能会出现兼容性问题。在本例中,我们讨论的是Spring 3.2.0版本与JDK 1.8之间的冲突。 Spring 3.2.0发布于2012年,那时JDK 1.8尚未推出(JDK 1.8在2014...

    spring5.0和4.2.0 jdk8和jdk7 对应的版本

    Spring 5.0和4.2.0是两个重要的版本,分别对应不同的Java Development Kit (JDK) 版本,即JDK 8和JDK 7。在选择Spring版本时,与所使用的JDK兼容性是关键因素。 首先,让我们详细了解一下Spring 4.2.0。这个版本是...

    spring2.5+JDK1.8 版本报错的解决办法(修改后jar)

    原来这个工程的spring是2.5,网上说spring2.5必须要求JDK1.5以上版本,但不能兼容1.8。 没道理会这样吧? 原来spring-2.5.5.jar有一个检查JDK版本号的类,编码质量略低,导致1.8被误认为未达到“JDK1.5以上版本”...

    兼容jdk1.8的spring.jar包

    该jar包兼容了jdk1.3到1.8,可以放心使用。

    spring3兼容jdk1.8

    低版本spring兼容高版本jdk,原有项目升级jdk和tomcat

    spring 源码中文注释

    在源码中,`BeanFactory`和`ApplicationContext`接口是IoC容器的主要代表,前者是基础版本,后者提供了更多的企业级特性,如事件发布、国际化支持等。 接着,AOP是Spring的另一大特色。AOP允许开发者定义“切面”,...

    JDK 8 + Spring Boot 2.7.18

    【标题】"JDK 8 + Spring Boot 2.7.18" 指的是一个基于Java 8和Spring Boot 2.7.18版本的开发环境或项目。这个组合是现代Java应用程序开发中的常见选择,因为它提供了高效能、易用性和强大的功能。 【JDK 8】是Java...

    spring2.5.5+JDK1.8 版本报错的解决办法(修改后jar)

    原来这个工程的spring是2.5,网上说spring2.5必须要求JDK1.5以上版本,但不能兼容1.8。 没道理会这样吧? 原来spring-2.5.5.jar有一个检查JDK版本号的类,编码质量略低,导致1.8被误认为未达到“JDK1.5以上版本”这...

    jdk8SpringMVC4 所有spring核心包大合集 spring-framework-4.3.8.RELEASE

    jdk8SpringMVC4 所有spring核心包大合集 里面包含了 spring-framework-4.3.8.RELEASE 中的60个Spring jar包 可以根据需要挑选自己需要的jar

    spring v3.2源码

    个人觉得spring3.2的源代码比较好编译,没啥脾气,像我之前下载的spring的最新版本源代码,还有spring4.0的源代码,不论是使用jdk1.6还是1.7甚至是1.8编译都出问题,结果还是觉得spring3.2编译过程轻松一点,配合...

    spring源码编译缺失包

    确认每个依赖的版本与Spring源码版本相匹配,避免版本冲突。 3. **本地Maven仓库问题**:有时,本地Maven仓库中的某些依赖可能已损坏或丢失,导致编译失败。清理并重新下载Maven仓库中的相关依赖可能会解决这个问题...

    jdk1.8 rt.jar 源码

    在 JDK 1.8 版本中,`rt.jar` 是一个非常重要的文件,它包含了Java标准版(Java SE)的运行时类库。这个库包含了Java API的实现,也就是Java程序员经常使用的各种类和接口,如`java.lang`、`java.util`、`java.io`等...

    jdk源码(完整版)

    这里提到的"jdk源码(完整版)"提供了JDK的源代码,包括了最新的OpenJDK 1.8版本。OpenJDK是JDK的一个开源实现,由全球开发者社区共同维护,其源码公开使得开发者能够深入理解Java平台的工作原理。 1. **Java核心库...

    spring源码编译以及如何用eclipse运行的方法

    ### Spring源码编译及Eclipse运行方法详解 #### 一、下载Spring源码 首先,需要从官方网站或其他可靠的源获取Spring源码。本例中使用的版本为`spring-framework-3.1.0.RELEASE`,下载地址为:...

    以电商项目为线索,快速掌握 JDK17 + springboot3 + springcloud Alibaba 专栏源码

    以电商项目为线索,快速掌握 JDK17 + springboot3 + springcloud Alibaba 专栏源码。 2 技术选型 JDK17 持久层: MyBatis-Plus 数据库: MySQL5.7 其他: SpringCloud Alibaba 技术栈 服务注册与发现:Nacos ...

    jdk6 源码 SRC

    jdk6 源码jdk6 源码jdk6 源码jdk6 源码jdk6 源码jdk6 源码

    JDK1.8.0_77源码src.zip官方版

    JDK1.8.0 源码 JDK1.8.0 源码 JDK1.8.0 源码

    关于spring版本与JDK版本不兼容的问题及解决方法

    通常情况下,开发者在选择Spring版本和JDK版本时需留意兼容性,否则可能会遇到不兼容的问题,这将导致应用程序在运行时出现错误。 不兼容问题主要表现为运行时异常,例如java.lang.IllegalArgumentException,这...

    基于Jdk11 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台

    lamp-cloud 基于Jdk11 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户(SaaS架构)解决方案,亦可作为普通项目(非SaaS架构)的基础开发框架使用,目前已实现插拔式数据库隔离、SCHEMA隔离...

    编译好的Spring的eclipse工程!Spring源码

    这个压缩包包含的是编译好的Spring 4.3.0版本的源码,对于学习和理解Spring的工作原理极其有价值。 在Spring 4.3.0版本中,有几个重要的知识点值得深入探讨: 1. **IoC容器**:IoC是Spring的核心,它管理对象的...

Global site tag (gtag.js) - Google Analytics