VersionUtil xref

View Javadoc

    1   package org.slf4j.impl;
    2
    3   import java.lang.reflect.Method;
    4
    5   import org.slf4j.helpers.Util;
    6
    7   public class VersionUtil {
    8   	static final int MINIMAL_VERSION = 5;
    9
    10  	static public int getJavaMajorVersion() {
    11  		String javaVersionString = Util.safeGetSystemProperty("java.version");
    12  		return getJavaMajorVersion(javaVersionString);
    13  	}
    14
    15  	static int getJavaMajorVersion(String versionString) {
    16  		if (versionString == null)
    17  			return MINIMAL_VERSION;
    18  		if (versionString.startsWith("1.")) {
    19  			return versionString.charAt(2) - '0';
    20  		} else {
    21  			// we running under Java 9 or later
    22  			try {
    23  				Method versionMethod = Runtime.class.getMethod("version");
    24  				Object versionObj = versionMethod.invoke(null);
    25  				Method majorMethod = versionObj.getClass().getMethod("major");
    26  				Integer resultInteger = (Integer) majorMethod.invoke(versionObj);
    27  				return resultInteger.intValue();
    28  			} catch (Exception e) {
    29  				return MINIMAL_VERSION;
    30  			}
    31  		}
    32  	}
    33  }