gcc/libjava/gnu/gcj/runtime/BootClassLoader.java
Tom Tromey b0966710ba BootClassLoader.java (BootClassLoader): Don't add sax and w3c libraries.
* gnu/gcj/runtime/BootClassLoader.java (BootClassLoader): Don't
	add sax and w3c libraries.
	* Makefile.am (libgij_la_LIBADD): Added libsax-gcj.la and
	libw3c-gcj.la.
	* external/w3c_dom/Makefile.in: Rebuilt.
	* external/w3c_dom/Makefile.am (libw3c_gcj_la_GCJFLAGS): Include
	AM_GCJFLAGS.
	(libw3c_gcj_la_LDFLAGS): New variable.
	(noinst_LTLIBRARIES): Renamed.
	* external/sax/Makefile.in: Rebuilt.
	* external/sax/Makefile.am (libsax_gcj_la_GCJFLAGS): Include
	AM_GCJFLAGS.
	(libsax_gcj_la_LDFLAGS): New variable.
	(noinst_LTLIBRARIES): Renamed.

From-SVN: r97004
2005-03-24 19:42:40 +00:00

96 lines
2.3 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.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.StringTokenizer;
/**
* 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 URLClassLoader
{
BootClassLoader(String libdir)
{
super(new URL[0]);
// Add the contents of the endorsed directories.
StringTokenizer st
= new StringTokenizer (System.getProperty ("java.endorsed.dirs", ""),
File.pathSeparator);
try
{
while (st.hasMoreElements ())
{
String dirname = st.nextToken ();
File dir = new File (dirname);
if (dir.exists ())
{
if (! dirname.endsWith (File.separator))
dirname = dirname + File.separator;
String files[] = dir.list (new FilenameFilter ()
{
public boolean accept (File dir, String name)
{
return name.endsWith (".jar") || name.endsWith (".zip");
}
});
for (int i = files.length - 1; i >= 0; i--)
addURL(new URL("file", "", -1, dirname + files[i]));
}
}
}
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);
}
}