Java ClassLoarder 加载 jar 包里面的 class
一、不同启动方式的测试代码
ClassLoader cl = JarClApp.class.getClassLoader();
String pkg = JarClApp.class.getPackage().getName();
System.out.printf("Find pkg: %s, cl: %s %n", pkg, cl);
String path = pkg.replaceAll("\\.", "/");
URL resource = cl.getResource(path);
assert resource != null;
System.out.printf("Find resource %s, protocol: %s %n", resource, resource.getProtocol());
Find pkg: com.bheternal.jhome.lang.cl, cl: sun.misc.Launcher$AppClassLoader@18b4aac2
Find resource file:/Users/zain/code/1.my-code/JHome/lang/java-classloader/target/classes/com/bheternal/jhome/lang/cl, protocol: file