From a0593c03c6b66d29f7f1473bffb5f20c4ed7d6c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E5=A5=87=E7=9A=84=E8=B5=B5=E4=BA=8C=20=28OrzMiku?= =?UTF-8?q?=29?= Date: Thu, 18 Dec 2025 20:46:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=8B=E8=BD=BD=20Java25?= =?UTF-8?q?=20(#4990)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jackhuang/hmcl/game/GameJavaVersion.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) 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); } }