Consolidate Java version checking code, fix bugs

where versions are in different forms
Add warning about Java 7
This commit is contained in:
zzz
2019-05-12 20:20:13 +00:00
parent adb1c6f58e
commit 04a985cd8c
5 changed files with 43 additions and 10 deletions

View File

@ -243,6 +243,40 @@ public abstract class SystemVersion {
return _oneDotEleven;
}
/**
* Handles Android also
*
* @param minVersion e.g. 11
* @return true if greater than or equal to minVersion
* @since 0.9.41
*/
public static boolean isJava(int minVersion) {
return isJava("1." + minVersion);
}
/**
* Handles Android, and minVersions in both forms (e.g. 11 or 1.11)
*
* @param minVersion either 1.x or x form works
* @return true if greater than or equal to minVersion
* @since 0.9.41
*/
public static boolean isJava(String minVersion) {
String version = System.getProperty("java.version");
if (!version.startsWith("1."))
version = "1." + version;
if (!minVersion.startsWith("1."))
minVersion = "1." + minVersion;
if (_isAndroid) {
if (minVersion.startsWith("1.6"))
return _oneDotSix;
if (minVersion.startsWith("1.7"))
return _oneDotSeven;
return false;
}
return VersionComparator.comp(version, minVersion) >= 0;
}
/**
* This isn't always correct.
* http://stackoverflow.com/questions/807263/how-do-i-detect-which-kind-of-jre-is-installed-32bit-vs-64bit
@ -342,6 +376,7 @@ public abstract class SystemVersion {
System.out.println("Java 9 : " + isJava9());
System.out.println("Java 10 : " + isJava10());
System.out.println("Java 11 : " + isJava11());
System.out.println("Java 12 : " + isJava(12));
System.out.println("Android : " + isAndroid());
if (isAndroid())
System.out.println(" Version: " + getAndroidVersion());