实例化和使用类加载器

此基本示例显示了应用程序如何实例化类加载器并使用它来动态加载类。

URL[] urls = new URL[] {new URL("file:/home/me/extras.jar")};
Classloader loader = new URLClassLoader(urls);
Class<?> myObjectClass = loader.findClass("com.example.MyObject");

在此示例中创建的类加载器将使用默认的类加载器作为其父类,并且在查看“extra.jar”之前将首先尝试在父类加载器中查找任何类。如果已经加载了所请求的类,则 findClass 调用将返回对先前加载的类的引用。

findClass 呼叫可能以各种方式失败。最常见的是:

  • 如果找不到指定的类,则使用 throw ClassNotFoundException 调用。
  • 如果命名类依赖于其他一些无法找到的类,则调用将抛出 NoClassDefFoundError