vmclassloader.java

来自「gcc3.2.1源代码」· Java 代码 · 共 86 行

JAVA
86
字号
/* Copyright (C) 1999, 2001  Free Software Foundation   This file is part of libgcj.This software is copyrighted work licensed under the terms of theLibgcj License.  Please consult the file "LIBGCJ_LICENSE" fordetails.  *//* Author: Kresten Krab Thorup <krab@gnu.org>  */package gnu.gcj.runtime;import java.io.*;import java.util.StringTokenizer;import java.net.URL;public final class VMClassLoader extends java.net.URLClassLoader{  private VMClassLoader ()  {	    super (init());  }  private static URL[] init()   {    StringTokenizer st	= new StringTokenizer (System.getProperty ("java.class.path", "."),			       System.getProperty ("path.separator", ":"));    java.util.Vector p = new java.util.Vector();    while (st.hasMoreElements ())       {  	String e = st.nextToken ();	try	  {	    if (e.endsWith(".jar") || e.endsWith (".zip"))	      {		File archive = new File (e);		try {		  p.addElement(new URL("jar", "", -1, "file://"				       + archive.getCanonicalPath ()				       + "!/"));		} catch (IOException ex) {		  // empty		}	      }	    else if (e.endsWith ("/"))	      p.addElement (new URL("file", "", -1, e));	    else if (new File (e).isDirectory ())	      p.addElement (new URL("file", "", -1, e + "/"));	    else	      /* Ignore path element. */;	  } 	catch (java.net.MalformedURLException x)	  {	    /* Ignore this path element */	  }      }    // Add core:/ to the end of the java.class.path so any resources    // compiled into this executable may be found.    try      {	p.addElement (new URL("core", "", -1, "/"));      }    catch (java.net.MalformedURLException x)      {	// This should never happen.      }    URL[] urls = new URL[p.size()];    p.copyInto (urls);    return urls;  }  /** This is overridden to search the internal hash table, which    * will only search existing linked-in classes.   This will make   * the default implementation of loadClass (in ClassLoader) work right.   * The implementation of this method is in java/lang/natClassLoader.cc.   */  protected native Class findClass(String name)     throws java.lang.ClassNotFoundException;  // The only VMClassLoader that can exist.  public static VMClassLoader instance = new VMClassLoader ();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?