📄 directoryclassloader.java
字号:
package webwork.util.classloader;import java.io.*;import java.net.MalformedURLException;import java.net.URL;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import webwork.util.ClassLoaderUtils;/** * User: Hani Suleiman * Date: Oct 22, 2003 * Time: 3:57:08 PM */public class DirectoryClassLoader extends WebworkClassLoader{ private File directory; private Map timestamps = new HashMap(); public DirectoryClassLoader(File file, ClassLoader parent) { super(parent); this.directory = file; } public boolean isStale() { Iterator iter = timestamps.entrySet().iterator(); while(iter.hasNext()) { Map.Entry entry = (Map.Entry)iter.next(); File toCheck = new File(directory, (String)entry.getKey()); long time = ((Long)entry.getValue()).longValue(); if(toCheck.lastModified() > time) { return true; } } return false; } protected URL getDataURL(String name, byte[] data) throws MalformedURLException { return new URL(null, directory.toURL().toExternalForm() + '/' + name, new BytesURLStreamHandler(data)); } public byte[] getFile(String path) { try { InputStream in = null; int size = 0; File f = new File(directory, path); if(!f.exists()) return null; size = (int)f.length(); in = new FileInputStream(f); //we're ok not storing timestamps for jars, since the whole jar //will be modified in that case. timestamps.put(path, new Long(f.lastModified())); byte[] data = ClassLoaderUtils.readStream(in, size); return data; } catch(IOException e) { return null; } } public Object clone() { DirectoryClassLoader loader = new DirectoryClassLoader(directory, getParent()); loader.packages = packages; return loader; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -