完善 osx-arm64 原生支持 (#1689)
* Add 1.6~1.18.2 support for osx-arm64 * fix crash on 1.12 * Update I18N
This commit is contained in:
@@ -66,6 +66,8 @@ public final class JavaRepository {
|
||||
}
|
||||
|
||||
public static Stream<Path> findJavaHomeInMinecraftRuntimeDir(Path runtimeDir) {
|
||||
if (!Files.isDirectory(runtimeDir))
|
||||
return Stream.empty();
|
||||
// Examples:
|
||||
// $HOME/Library/Application Support/minecraft/runtime/java-runtime-beta/mac-os/java-runtime-beta/jre.bundle/Contents/Home
|
||||
// $HOME/.minecraft/runtime/java-runtime-beta/linux/java-runtime-beta
|
||||
|
||||
@@ -123,12 +123,9 @@ public enum JavaVersionConstraint {
|
||||
if (javaVersion == null || javaVersion.getArchitecture() != Architecture.ARM64)
|
||||
return false;
|
||||
|
||||
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS)
|
||||
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS || OperatingSystem.CURRENT_OS == OperatingSystem.OSX)
|
||||
return gameVersionNumber.compareTo(VersionNumber.asVersion("1.6")) < 0;
|
||||
|
||||
if (OperatingSystem.CURRENT_OS == OperatingSystem.OSX)
|
||||
return gameVersionNumber.compareTo(VersionNumber.asVersion("1.19")) < 0;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -245,15 +242,15 @@ public enum JavaVersionConstraint {
|
||||
public static JavaVersion findSuitableJavaVersion(VersionNumber gameVersion, Version version) throws InterruptedException {
|
||||
VersionRanges range = findSuitableJavaVersionRange(gameVersion, version);
|
||||
|
||||
boolean skipCheckArchitecture = Architecture.CURRENT_ARCH.isX86()
|
||||
|| (OperatingSystem.CURRENT_OS == OperatingSystem.OSX && gameVersion.compareTo(VersionNumber.asVersion("1.19")) >= 0)
|
||||
|| OperatingSystem.CURRENT_OS == OperatingSystem.LINUX;
|
||||
boolean forceX86 = Architecture.SYSTEM_ARCH == Architecture.ARM64
|
||||
&& (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS || OperatingSystem.CURRENT_OS == OperatingSystem.OSX)
|
||||
&& gameVersion.compareTo(VersionNumber.asVersion("1.6")) < 0;
|
||||
|
||||
JavaVersion mandatory = null;
|
||||
JavaVersion suggested = null;
|
||||
for (JavaVersion javaVersion : JavaVersion.getJavas()) {
|
||||
// select the latest x86 java that this version accepts.
|
||||
if (!skipCheckArchitecture && !javaVersion.getArchitecture().isX86())
|
||||
if (forceX86 && !javaVersion.getArchitecture().isX86())
|
||||
continue;
|
||||
|
||||
VersionNumber javaVersionNumber = javaVersion.getVersionNumber();
|
||||
|
||||
Reference in New Issue
Block a user