From 6f7d00dadbb6b75c3b73214a3b258a3f43b63258 Mon Sep 17 00:00:00 2001 From: tromey Date: Wed, 2 Feb 2005 20:59:41 +0000 Subject: PR libgcj/19681: * Makefile.in: Rebuilt. * Makefile.am (ordinary_java_source_files): Added new class. * java/lang/natVMClassLoader.cc (getSystemClassLoaderInternal): Use system_instance, not instance. * gnu/gcj/runtime/SystemClassLoader.java: New file. * gnu/gcj/runtime/VMClassLoader.java (init): Don't search java.class.path. (system_instance): New field. (initialize): Initialize the system loader as well. (VMClassLoader): Default to LIB_CACHE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94611 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/gnu/gcj/runtime/SystemClassLoader.java | 57 ++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 libjava/gnu/gcj/runtime/SystemClassLoader.java (limited to 'libjava/gnu/gcj/runtime/SystemClassLoader.java') diff --git a/libjava/gnu/gcj/runtime/SystemClassLoader.java b/libjava/gnu/gcj/runtime/SystemClassLoader.java new file mode 100644 index 00000000000..163d3dd84d7 --- /dev/null +++ b/libjava/gnu/gcj/runtime/SystemClassLoader.java @@ -0,0 +1,57 @@ +/* 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.*; +import java.util.StringTokenizer; +import java.util.HashSet; +import java.net.URL; +import java.net.URLClassLoader; + +public final class SystemClassLoader extends URLClassLoader +{ + SystemClassLoader(ClassLoader parent) + { + super(new URL[0], parent); + } + + // We add the URLs to the system class loader late. The reason for + // this is that during bootstrap we don't want to parse URLs or + // create URL connections, since that will result in circularities + // causing a crash. + void init() + { + StringTokenizer st + = new StringTokenizer (System.getProperty ("java.class.path", "."), + File.pathSeparator); + while (st.hasMoreElements ()) + { + String e = st.nextToken (); + try + { + if ("".equals(e)) + e = "."; + + File path = new File(e); + // Ignore invalid paths. + if (!path.exists()) + continue; + if (!e.endsWith (File.separator) && path.isDirectory ()) + addURL(new URL("file", "", -1, e + File.separator)); + else + addURL(new URL("file", "", -1, e)); + } + catch (java.net.MalformedURLException x) + { + // This should never happen. + throw new RuntimeException(x); + } + } + } +} -- cgit v1.2.3