From 015a1e3482ad82aeded782969fd733d07511e095 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Fri, 31 Aug 2018 12:21:08 +0800 Subject: [PATCH] Fix #441 --- .../java/org/jackhuang/hmcl/game/LauncherHelper.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java index 0c31afbbe..ca091c132 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java @@ -247,9 +247,12 @@ public final class LauncherHelper { } } - // LaunchWrapper will crash because of assuming the system class loader is an instance of URLClassLoader. - // cpw has claimed that he will make MinecraftForge of 1.13 and later versions able to run on Java 9. - if (!flag && java.getParsedVersion() >= JavaVersion.JAVA_9 && gameVersion.compareTo(VersionNumber.asVersion("1.13")) < 0 && version.getMainClass().contains("launchwrapper")) { + // LaunchWrapper 1.12 will crash because of assuming the system class loader is an instance of URLClassLoader. + if (!flag && java.getParsedVersion() >= JavaVersion.JAVA_9 + && version.getMainClass().contains("launchwrapper") + && version.getLibraries().stream() + .filter(library -> "launchwrapper".equals(library.getArtifactId())) + .anyMatch(library -> VersionNumber.asVersion(library.getVersion()).compareTo(VersionNumber.asVersion("1.13")) < 0)) { Optional java8 = JavaVersion.getJREs().stream().filter(javaVersion -> javaVersion.getParsedVersion() == JavaVersion.JAVA_8).findAny(); if (java8.isPresent()) { setting.setJavaVersion(java8.get());