资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

怎么用代码判断当前系统是否支持某个版本的feature-创新互联

怎么用代码判断当前系统是否支持某个版本的feature,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联专业提供成都主机托管四川主机托管成都服务器托管四川服务器托管,支持按月付款!我们的承诺:贵族品质、平民价格,机房位于中国电信/网通/移动机房,成都IDC机房托管服务有保障!

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

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

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

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

怎么用代码判断当前系统是否支持某个版本的feature

可以看到大量调用工具类JreCompat检测JRE9是否可用:

JreCompat.isJre9Available()

查看isJre9Available的具体实现:

public static boolean isJre9Available() {     return jre9Available;
}

怎么用代码判断当前系统是否支持某个版本的feature

被一个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;
  }
}

怎么用代码判断当前系统是否支持某个版本的feature

再看Jre9Compat.isSupported()的代码:

static boolean isSupported() {     return inaccessibleObjectExceptionClazz != null;
}

怎么用代码判断当前系统是否支持某个版本的feature

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

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

怎么用代码判断当前系统是否支持某个版本的feature

java.lang.reflect.InaccessibleObjectException这个类正是Java 9引入的。因此如果用Class loader加载不到这个类,一定说明当前的运行环境是Java 9以下。

怎么用代码判断当前系统是否支持某个版本的feature

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

ABAP

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

怎么用代码判断当前系统是否支持某个版本的feature

看完上述内容,你们掌握怎么用代码判断当前系统是否支持某个版本的feature的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联-成都网站建设公司行业资讯频道,感谢各位的阅读!


本文名称:怎么用代码判断当前系统是否支持某个版本的feature-创新互联
转载注明:http://cdkjz.cn/article/dpgdjo.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220