diff --git a/forge-core/src/main/java/forge/util/RuntimeVersion.java b/forge-core/src/main/java/forge/util/RuntimeVersion.java index b056cfc14bc..6d8356c9e03 100644 --- a/forge-core/src/main/java/forge/util/RuntimeVersion.java +++ b/forge-core/src/main/java/forge/util/RuntimeVersion.java @@ -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; } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java index 026c5815997..e443e2b193e 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java @@ -110,7 +110,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { 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)); }