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

View File

@@ -110,7 +110,7 @@ public enum VSubmenuDownloaders implements IVSubmenu<CSubmenuDownloaders> {
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));
}