且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何通过Java代码判断当前的环境是否支持JRE 9

更新时间:2022-09-13 11:32:49

JDK9已经出来有一段时间了,因此很多流行的Java应用纷纷增添了对JDK9乃至JDK10的支持,比如Tomcat。


我们通过这个链接下载最新的Tomcat源文件包,总共7MB:


https://tomcat.apache.org/download-90.cgi


解压之后,在文件夹apache-tomcat-9.0.10-srcjavaorgapachecatalinacore里找到文件JreMemoryLeakPreventionListener.java:


如何通过Java代码判断当前的环境是否支持JRE 9

被一个boolean控制:jre9Available。

jre9Available这个boolean被Jre9Compat.isSupported()控制:

static {

// This is Tomcat 9 with a minimum Java version of Java 8.

// Look for the highest supported JVM first

if (Jre9Compat.isSupported()) {

       instance = new Jre9Compat();

       jre9Available = true;

} else {

     instance = new JreCompat();

     jre9Available = false;

}

}

如何通过Java代码判断当前的环境是否支持JRE 9

一旦inaccessibleObjectExceptionClazz不为null,说明JRE9可用。


inaccessibleObjectExceptionClazz来自Class.forName(“java.lang.reflect.InaccessibleObjectException”),

如何通过Java代码判断当前的环境是否支持JRE 9

通过这种方式进行Java运行环境的检测比System.getProperty准确,因为后者获取的信息理论上有可能被别人用setProperty覆盖。

ABAP

通过表CVERS查看Software component的版本信息:

如何通过Java代码判断当前的环境是否支持JRE 9