ClassLoader
Posted chenpi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ClassLoader相关的知识,希望对你有一定的参考价值。
获取classpath下的资源文件
先调用当前线程的context加载器的getResourceAsStream方法去获取
没找到,在调用当前传入类的类加载器的getResourceAsStream方法获取
public static InputStream getResourceAsStream(Class clazz, String name) { InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(name); if (in == null) { in = clazz.getResourceAsStream(name); } return in; }
递归获取加载某个类的类加载器链条信息
private static String showClassLoaderHierarchy(ClassLoader cl, String delim, String tabText, int indent) { if (cl == null) { String s = "null classloader " + delim; ClassLoader ctxcl = Thread.currentThread().getContextClassLoader(); s += "Context class loader=" + ctxcl + " hc=" + ctxcl.hashCode(); return s; } StringBuilder s = new StringBuilder(); //"ClassLoader: "; for (int i = 0; i < indent; i++) { s.append(tabText); } s.append(cl).append(" hc=").append(cl.hashCode()).append(delim); ClassLoader parent = cl.getParent(); return s.toString() + showClassLoaderHierarchy(parent, delim, tabText, indent + 1); }
以上是关于ClassLoader的主要内容,如果未能解决你的问题,请参考以下文章