package com.firefly.utils.lang;
/**
* @author Pengtao Qiu
*/
public class JDK {
/**
* True if JDK is 1.5 (or newer)
*/
public static final boolean IS_5 = isJavaVersionAtLeast(1, 5);
/**
* True if JDK is 1.6 (or newer)
*/
public static final boolean IS_6 = isJavaVersionAtLeast(1, 6);
/**
* True if JDK is 1.7 (or newer)
*/
public static final boolean IS_7 = isJavaVersionAtLeast(1, 7);
/**
* True if JDK is 1.8 (or newer)
*/
public static final boolean IS_8 = isJavaVersionAtLeast(1, 8);
/**
* True if JDK is 9.0 (or newer)
*/
public static final boolean IS_9 = isJavaVersionAtLeast(9, 0);
private static boolean isJavaVersionAtLeast(int maj, int min) {
String jver = System.getProperty("java.version");
if (jver == null) {
System.err.println("## ERROR: System.getProperty('java.version') == null !?");
return false;
}
String vparts[] = jver.split("[-.]");
if (vparts.length < 2) {
System.err.println("## ERROR: Invalid java version format '" + jver + "'");
return false;
}
return toInt(vparts[0]) > maj || (toInt(vparts[0]) == maj && toInt(vparts[1]) >= min);
}
private static int toInt(String val) {
try {
return Integer.parseInt(val);
} catch (NumberFormatException e) {
return 0;
}
}
}