diff --git a/Launcher/src/main/java/pro/gravit/launcher/client/ClientClassLoader.java b/Launcher/src/main/java/pro/gravit/launcher/client/ClientClassLoader.java index 55956b16..7bb96e7b 100644 --- a/Launcher/src/main/java/pro/gravit/launcher/client/ClientClassLoader.java +++ b/Launcher/src/main/java/pro/gravit/launcher/client/ClientClassLoader.java @@ -7,6 +7,7 @@ import java.net.URLClassLoader; public class ClientClassLoader extends URLClassLoader { + private static final ClassLoader SYSTEM_CLASS_LOADER = ClassLoader.getSystemClassLoader(); public String nativePath; /** @@ -58,6 +59,14 @@ public ClientClassLoader(URL[] urls, ClassLoader parent) { super(urls, parent); } + @Override + protected Class loadClass(String name, boolean resolve) throws ClassNotFoundException { + if(name != null && (name.startsWith("pro.gravit.launcher.") || name.startsWith("pro.gravit.utils."))) { + return SYSTEM_CLASS_LOADER.loadClass(name); + } + return super.loadClass(name, resolve); + } + @Override public String findLibrary(String name) { return nativePath.concat(IOHelper.PLATFORM_SEPARATOR).concat(getNativePrefix()).concat(name).concat(getNativeEx()); diff --git a/Launcher/src/main/java/pro/gravit/launcher/client/ClientLauncherEntryPoint.java b/Launcher/src/main/java/pro/gravit/launcher/client/ClientLauncherEntryPoint.java index af76d9f9..f46bf55e 100644 --- a/Launcher/src/main/java/pro/gravit/launcher/client/ClientLauncherEntryPoint.java +++ b/Launcher/src/main/java/pro/gravit/launcher/client/ClientLauncherEntryPoint.java @@ -145,7 +145,7 @@ public static void main(String[] args) throws Throwable { } ClientProfile.ClassLoaderConfig classLoaderConfig = profile.getClassLoaderConfig(); if (classLoaderConfig == ClientProfile.ClassLoaderConfig.LAUNCHER) { - ClientClassLoader classLoader = new ClientClassLoader(classpathURLs.toArray(new URL[0]), ClassLoader.getSystemClassLoader()); + ClientClassLoader classLoader = new ClientClassLoader(classpathURLs.toArray(new URL[0]), ClientLauncherEntryPoint.class.getClassLoader()); System.setProperty("java.class.path", classpath.stream().map(Path::toString).collect(Collectors.joining(File.pathSeparator))); ClientLauncherEntryPoint.classLoader = classLoader; Thread.currentThread().setContextClassLoader(classLoader);