diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionSettingsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionSettingsPage.java index 0411e704c..39be03cfc 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionSettingsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionSettingsPage.java @@ -546,7 +546,7 @@ public final class VersionSettingsPage extends StackPane implements DecoratorPag memoryStatus.set(OperatingSystem.getPhysicalMemoryStatus().orElse(OperatingSystem.PhysicalMemoryStatus.INVALID)); Task.supplyAsync(JavaVersion::getJavas).thenAcceptAsync(Schedulers.javafx(), list -> { - boolean isX86 = (Architecture.CURRENT_ARCH == Architecture.X86 || Architecture.CURRENT_ARCH == Architecture.X86_64) + boolean isX86 = (Architecture.SYSTEM_ARCH == Architecture.X86 || Architecture.SYSTEM_ARCH == Architecture.X86_64) && list.stream() .map(java -> java.getPlatform().getArchitecture()) .allMatch(arch -> arch == Architecture.X86 || arch == Architecture.X86_64); 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 1e59798c9..688fd84d2 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 @@ -72,7 +72,7 @@ public final class JavaRepository { return Optional.of("mac-os"); } } else if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) { - if (Architecture.SYSTEM_ARCH == Architecture.X86) { + if (Architecture.SYSTEM_ARCH == Architecture.X86 || Architecture.SYSTEM_ARCH == Architecture.ARM64) { return Optional.of("windows-x86"); } else if (Architecture.SYSTEM_ARCH == Architecture.X86_64) { return Optional.of("windows-x64"); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/JavaVersionConstraint.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/JavaVersionConstraint.java index d177ef0ce..56bd4d814 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/JavaVersionConstraint.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/JavaVersionConstraint.java @@ -106,7 +106,7 @@ public enum JavaVersionConstraint { @Nullable JavaVersion javaVersion) { return getGameVersionRange().contains(gameVersionNumber) && Architecture.SYSTEM_ARCH != Architecture.X86 && Architecture.SYSTEM_ARCH != Architecture.X86_64 - && (javaVersion == null || (javaVersion.getArchitecture() != Architecture.X86 && javaVersion.getArchitecture() != Architecture.X86_64)); + && (javaVersion != null && (javaVersion.getArchitecture() != Architecture.X86 && javaVersion.getArchitecture() != Architecture.X86_64)); } @Override