gcc/libjava/gnu/gcj/runtime/BootClassLoader.java
Bryce McKinlay 0c9976393b BootClassLoader.java (BootClassLoader): Pass `null' parent ClassLoader to parent constructor.
2005-09-21  Bryce McKinlay  <mckinlay@redhat.com>

        * gnu/gcj/runtime/BootClassLoader.java (BootClassLoader): Pass
        `null' parent ClassLoader to parent constructor.
        * gnu/gcj/runtime/HelperClassLoader.java (HelperClassLoader): New
        constructor.

From-SVN: r104516
2005-09-22 01:21:52 +01:00

75 lines
1.8 KiB
Java

/* Copyright (C) 2005 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package gnu.gcj.runtime;
import java.io.IOException;
import java.net.URL;
import java.util.Enumeration;
/**
* This is a helper for the bootstrap class loader. It is a
* URLClassLoader so that we can read a class path and re-use all the
* existing code for finding classes, extracting them from jars, etc.
* However, it is never called the way that an ordinary ClassLoader is
* called. For instance, loadClass() is never used.
*/
public final class BootClassLoader extends HelperClassLoader
{
BootClassLoader(String libdir)
{
// The BootClassLoader is the top of the delegation chain. It does not
// have a parent.
super((ClassLoader) null);
addDirectoriesFromProperty("java.endorsed.dirs");
addDirectoriesFromProperty("gnu.gcj.runtime.endorsed.dirs");
try
{
// Add core:/ to the end so any resources compiled into this
// executable may be found.
addURL(new URL("core", "", -1, "/"));
}
catch (java.net.MalformedURLException x)
{
// This should never happen.
throw new RuntimeException(x);
}
}
public Class bootLoadClass(String name)
throws ClassNotFoundException
{
Class c = findLoadedClass(name);
if (c == null)
{
try
{
// We could hack URLClassLoader to make this more
// efficient, if it mattered.
c = findClass(name);
}
catch (ClassNotFoundException _)
{
c = null;
}
}
return c;
}
public URL bootGetResource(String name)
{
return findResource(name);
}
public Enumeration bootGetResources(String name) throws IOException
{
return findResources(name);
}
}