Hopefully actually fix java version checking

This commit is contained in:
Krazy
2017-06-23 18:40:19 +00:00
parent 26d1895faa
commit 287b48ce40
2 changed files with 12 additions and 3 deletions

View File

@@ -5,7 +5,7 @@ import java.util.regex.Pattern;
public class RuntimeVersion { public class RuntimeVersion {
private static Pattern versionNumberPattern = Pattern.compile("([1-9][0-9]*((\\.0)*\\.[1-9][0-9]*)*)"); private static Pattern versionNumberPattern = Pattern.compile("([1-9][0-9]*((\\.0)*\\.[0-9]*)*(_[0-9]+)?)");
private static Pattern preReleasePattern = Pattern.compile("([a-zA-Z0-9]+)"); private static Pattern preReleasePattern = Pattern.compile("([a-zA-Z0-9]+)");
private static Pattern buildNumberPattern = Pattern.compile("(0|[1-9][0-9]*)"); private static Pattern buildNumberPattern = Pattern.compile("(0|[1-9][0-9]*)");
private static Pattern buildInformationPattern = Pattern.compile("([-a-zA-Z0-9.]+)"); private static Pattern buildInformationPattern = Pattern.compile("([-a-zA-Z0-9.]+)");
@@ -18,6 +18,7 @@ public class RuntimeVersion {
private int major; private int major;
private int minor; private int minor;
private int securityLevel; private int securityLevel;
private int update;
private String preReleaseIdentifier; private String preReleaseIdentifier;
private int buildNumber; private int buildNumber;
@@ -32,7 +33,7 @@ public class RuntimeVersion {
throw new IllegalArgumentException("Improperly formatted version string provided: " + versionString); throw new IllegalArgumentException("Improperly formatted version string provided: " + versionString);
} }
String[] versionNumbers = matcher.group().split("\\."); String[] versionNumbers = matcher.group().split("[._]");
if (versionNumbers.length >= 1) { if (versionNumbers.length >= 1) {
major = Integer.parseInt(versionNumbers[0]); major = Integer.parseInt(versionNumbers[0]);
@@ -46,6 +47,10 @@ public class RuntimeVersion {
securityLevel = Integer.parseInt(versionNumbers[2]); securityLevel = Integer.parseInt(versionNumbers[2]);
} }
if (versionNumbers.length >= 4) {
update = Integer.parseInt(versionNumbers[3]);
}
if (versionStringPattern1.matcher(versionString).find()) { if (versionStringPattern1.matcher(versionString).find()) {
Matcher infoMatcher = preReleasePattern.matcher(versionString); Matcher infoMatcher = preReleasePattern.matcher(versionString);
@@ -109,6 +114,10 @@ public class RuntimeVersion {
return securityLevel; return securityLevel;
} }
public int getUpdate() {
return update;
}
public String getPreReleaseIdentifier() { public String getPreReleaseIdentifier() {
return preReleaseIdentifier; return preReleaseIdentifier;
} }

View File

@@ -110,7 +110,7 @@ public enum VSubmenuDownloaders implements IVSubmenu<CSubmenuDownloaders> {
RuntimeVersion javaVersion = RuntimeVersion.of(System.getProperty("java.version")); RuntimeVersion javaVersion = RuntimeVersion.of(System.getProperty("java.version"));
return javaVersion.getMajor() > 8 || (javaVersion.getMajor() == 8 && javaVersion.getSecurityLevel() >= 101); return javaVersion.getMajor() >= 1 && (javaVersion.getMinor() > 8 || (javaVersion.getMinor() == 8 && javaVersion.getUpdate() >= 101));
} }