diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaDownloadTask.java index a172c7e9f..4d4e07c7b 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaDownloadTask.java @@ -77,7 +77,7 @@ public class JavaDownloadTask extends Task { @Override public void preExecute() throws Exception { - this.platform = JavaRepository.getCurrentJavaPlatform().orElseThrow(UnsupportedPlatformException::new); + this.platform = JavaRepository.getSystemJavaPlatform().orElseThrow(UnsupportedPlatformException::new); } @Override diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaRepository.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaRepository.java index 967ffbe89..1e59798c9 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaRepository.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaRepository.java @@ -24,7 +24,7 @@ public final class JavaRepository { public static Task downloadJava(GameJavaVersion javaVersion, DownloadProvider downloadProvider) { return new JavaDownloadTask(javaVersion, getJavaStoragePath(), downloadProvider) .thenRunAsync(() -> { - Optional platform = getCurrentJavaPlatform(); + Optional platform = getSystemJavaPlatform(); if (platform.isPresent()) { addJava(getJavaHome(javaVersion, platform.get())); } @@ -41,7 +41,7 @@ public final class JavaRepository { } public static void initialize() throws IOException, InterruptedException { - Optional platformOptional = getCurrentJavaPlatform(); + Optional platformOptional = getSystemJavaPlatform(); if (platformOptional.isPresent()) { String platform = platformOptional.get(); Path javaStoragePath = getJavaStoragePath(); @@ -60,7 +60,7 @@ public final class JavaRepository { } } - public static Optional getCurrentJavaPlatform() { + public static Optional getSystemJavaPlatform() { if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) { if (Architecture.SYSTEM_ARCH == Architecture.X86) { return Optional.of("linux-i386"); @@ -68,7 +68,7 @@ public final class JavaRepository { return Optional.of("linux"); } } else if (OperatingSystem.CURRENT_OS == OperatingSystem.OSX) { - if (Architecture.SYSTEM_ARCH == Architecture.X86_64) { + if (Architecture.SYSTEM_ARCH == Architecture.X86_64 || Architecture.SYSTEM_ARCH == Architecture.ARM64) { return Optional.of("mac-os"); } } else if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {