⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsfclassloader.java

📁 Bean Scripting Framework (BSF)为在java应用中使用脚本语言
💻 JAVA
字号:
/* * Copyright 2004,2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.bsf.util;import java.io.File;import java.io.FileInputStream;import java.util.Hashtable;/** * This class loader knows to load a class from the tempDir dir * of the environment of the given manager.  *  * @author   Sanjiva Weerawarana */class BSFClassLoader extends ClassLoader {  Hashtable cache = new Hashtable ();  String tempDir = ".";  // note the non-public constructor - this is only avail within  // this package.  BSFClassLoader () {  }  public synchronized Class loadClass (String name, boolean resolve)											   throws ClassNotFoundException {	Class c = (Class) cache.get (name);	if (c == null) {	  // is it a system class	  try {	c = findSystemClass (name);	cache.put (name, c);	return c;	  } catch (ClassNotFoundException e) {	// nope	  }	  try {	byte[] data = loadClassData (name);	c = defineClass (name, data, 0, data.length);	cache.put (name, c); 	  } catch (Exception e) {	e.printStackTrace ();	throw new ClassNotFoundException ("unable to resolve class '" + 					  name + "'");	  }	}	if (resolve)	  resolveClass (c); 	return c;    }  private byte[] loadClassData (String name) throws Exception {	String fileName = tempDir + File.separatorChar + name + ".class";	FileInputStream fi = new FileInputStream (fileName);	byte[] data = new byte[fi.available ()];	fi.read (data);	fi.close();	return data;  }  public void setTempDir (String tempDir) {	this.tempDir = tempDir;  }}

⌨️ 快捷键说明

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