added extension classloader to classloader's hierarchy

This commit is contained in:
2022-05-10 14:22:06 +08:00
parent 62741174ce
commit 662d77d3cd
2 changed files with 4 additions and 3 deletions

View File

@@ -3,11 +3,11 @@ package net.woggioni.envelope;
import java.nio.file.Path; import java.nio.file.Path;
import lombok.SneakyThrows; import lombok.SneakyThrows;
class MainClassLoader { class MainClassLoader {
@SneakyThrows @SneakyThrows
static Class<?> loadMainClass(Iterable<Path> roots, String mainModuleName, String mainClassName) { static Class<?> loadMainClass(Iterable<Path> roots, String mainModuleName, String mainClassName) {
ClassLoader pathClassLoader = new net.woggioni.xclassloader.PathClassLoader(roots); ClassLoader pathClassLoader = new net.woggioni.xclassloader.PathClassLoader(roots, ClassLoader.getSystemClassLoader().getParent());
Thread.currentThread().setContextClassLoader(pathClassLoader);
return pathClassLoader.loadClass(mainClassName); return pathClassLoader.loadClass(mainClassName);
} }
} }

View File

@@ -21,7 +21,8 @@ class MainClassLoader {
@SneakyThrows @SneakyThrows
static Class<?> loadMainClass(Iterable<Path> roots, String mainModuleName, String mainClassName) { static Class<?> loadMainClass(Iterable<Path> roots, String mainModuleName, String mainClassName) {
if (mainModuleName == null) { if (mainModuleName == null) {
ClassLoader pathClassLoader = new net.woggioni.xclassloader.PathClassLoader(roots); ClassLoader pathClassLoader = new net.woggioni.xclassloader.PathClassLoader(roots, ClassLoader.getSystemClassLoader().getParent());
Thread.currentThread().setContextClassLoader(pathClassLoader);
return pathClassLoader.loadClass(mainClassName); return pathClassLoader.loadClass(mainClassName);
} else { } else {
ModuleLayer bootLayer = ModuleLayer.boot(); ModuleLayer bootLayer = ModuleLayer.boot();