类的加载器 java.lang.ClassLoader
2011-08-24 14:43
465 查看
java.lang.ClassLoader类的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字节代码,然后从这些字节代码中定义出一个 Java 类,即
java.lang.Class类的一个实例。除此之外,
ClassLoader还负责加载 Java 应用所需的资源,如图像文件和配置文件等。不过本文只讨论其加载类的功能。为了完成加载类的这个职责,
ClassLoader提供了一系列的方法:
getParent() | 返回该类加载器的父类加载器。 |
loadClass(String name) | 加载名称为 name的类,返回的结果是 java.lang.Class类的实例。 |
findClass(String name) | 查找名称为 name的类,返回的结果是 java.lang.Class类的实例。 |
findLoadedClass(String name) | 查找名称为 name的已经被加载过的类,返回的结果是 java.lang.Class类的实例。 |
defineClass(String name, byte[] b, int off, int len) | 把字节数组 b中的内容转换成 Java 类,返回的结果是 java.lang.Class类的实例。这个方法被声明为 final的。 |
resolveClass(Class<?> c) | 链接指定的 Java 类。 |
public class ClassLoaderTest extends ClassLoader { public static void main(String[] args) throws SecurityException, NoSuchMethodException { // 根类加载器,加载的核心类库 URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs(); for (URL u : urls) { System.out.println(u); } // 扩展类 加载器,,加载的系统属性:java.ext.dirs 返回的路径下的 class System.err.println("扩展类(extention classLoader)加载器" + ClassLoader.getSystemClassLoader().getParent());//非继承关系,只是意义上 System.out.println(System.getProperty("java.ext.dirs")); // 应用(系统 application classLoader)类加载器,, 加载系统环境变量 PATH 或 CLASSPATH // 指定的JAR包和类路径 System.err.println("应用(系统)类加载器" + ClassLoader.getSystemClassLoader()); // System.out.println(System.getenv("PATH")); // System.out.println(System.getenv("CLASSPATH")); } }
相关文章推荐
- 已经加载了类库,还是报错启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderList
- jar的类加载器 Java.lang.ClassLoader
- java中tomcat重启时加载动态库XXX.dll报错“java.lang.UnsatisfiedLinkError: already loaded in another classloader”
- 已经加载了类库,还是报错启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderList
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener问题
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- 一个困扰很久的异常java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- 【项目启动】 tomcat启动,项目无法启动,无法正常访问/项目可以启动,报错:java.lang.ClassNotFoundException: ContextLoaderListener
- 解决java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoader
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- eclipse启动项目报错:java.lang.ClassNotFoundException: ContextLoaderListener
- Java 类加载体系与ContextClassLoader
- Tomcat启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderListener
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
- Java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListenerj解决方法
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- Java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- Maven项目下update maven后Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderListener
- java.lang.ClassNotFoundException: ContextLoaderListener