diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/GameJavaVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/GameJavaVersion.java index e4a4f6417..4842d9b11 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/GameJavaVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/GameJavaVersion.java @@ -25,6 +25,7 @@ import org.jackhuang.hmcl.util.versioning.GameVersionNumber; import java.util.*; public final class GameJavaVersion { + public static final GameJavaVersion JAVA_25 = new GameJavaVersion("java-runtime-epsilon", 25); public static final GameJavaVersion JAVA_21 = new GameJavaVersion("java-runtime-delta", 21); public static final GameJavaVersion JAVA_17 = new GameJavaVersion("java-runtime-beta", 17); public static final GameJavaVersion JAVA_16 = new GameJavaVersion("java-runtime-alpha", 16); @@ -33,6 +34,8 @@ public final class GameJavaVersion { public static final GameJavaVersion LATEST = JAVA_21; public static GameJavaVersion getMinimumJavaVersion(GameVersionNumber gameVersion) { + if (gameVersion.compareTo("26.1") >= 0) + return JAVA_25; if (gameVersion.compareTo("1.20.5") >= 0) return JAVA_21; if (gameVersion.compareTo("1.18") >= 0) @@ -45,18 +48,14 @@ public final class GameJavaVersion { } public static GameJavaVersion get(int major) { - switch (major) { - case 8: - return JAVA_8; - case 16: - return JAVA_16; - case 17: - return JAVA_17; - case 21: - return JAVA_21; - default: - return null; - } + return switch (major) { + case 8 -> JAVA_8; + case 16 -> JAVA_16; + case 17 -> JAVA_17; + case 21 -> JAVA_21; + case 25 -> JAVA_25; + default -> null; + }; } public static List getSupportedVersions(Platform platform) { @@ -74,13 +73,13 @@ public final class GameJavaVersion { case WINDOWS: case LINUX: case MACOS: - return Arrays.asList(JAVA_8, JAVA_16, JAVA_17, JAVA_21); + return Arrays.asList(JAVA_8, JAVA_16, JAVA_17, JAVA_21, JAVA_25); } } else if (architecture == Architecture.ARM64) { switch (operatingSystem) { case WINDOWS: case MACOS: - return Arrays.asList(JAVA_17, JAVA_21); + return Arrays.asList(JAVA_17, JAVA_21, JAVA_25); } }