Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Hashtable;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FilenameFilter;
- public class CL extends ClassLoader {
- private Hashtable classes = new Hashtable();
- private List<Class> loadedclasses = new ArrayList<Class>();
- private String filepath = "";
- public CL() {
- }
- public void setfilepath(String s)
- {
- filepath = s;
- }
- private byte getClassFromLocal(String className)[] {
- byte result[];
- try {
- FileInputStream fi = new FileInputStream(filepath+"\\"+className+".class");
- result = new byte[fi.available()];
- fi.read(result);
- return result;
- } catch (Exception e) {
- return null;
- }
- }
- public Class loadClass(String className) throws ClassNotFoundException {
- return (loadClass(className, true));
- }
- public synchronized Class loadClass(String className, boolean resolveIt)
- throws ClassNotFoundException {
- Class result;
- byte classData[];
- result = (Class) classes.get(className);
- if (result != null) {
- return result;
- }
- try {
- result = super.findSystemClass(className);
- return result;
- } catch (ClassNotFoundException e) {
- }
- classData = getClassFromLocal(className);
- if (classData == null) {
- throw new ClassNotFoundException();
- }
- result = defineClass(className,classData, 0, classData.length);
- if (resolveIt) {
- resolveClass(result);
- }
- classes.put(className, result);
- loadedclasses.add(result);
- return result;
- }
- public synchronized void loadAllClasses()
- {
- File dir = new File(filepath);
- FilenameFilter ff = new FilenameFilter(){
- public boolean accept(File dir,String name) {return name.endsWith(".class");}};
- String [] files = dir.list(ff);
- for(int i=0;i<files.length;i++)
- {
- files[i] = files[i].substring(0,files[i].indexOf('.'));
- try{ this.loadClass(files[i]); } catch(Exception e) {}
- }
- }
- public ArrayList<Class> getClasses()
- {
- return (ArrayList<Class>)loadedclasses;
- }
- public synchronized void loadClassForName(String name) throws Exception
- {
- loadedclasses.add(this.loadClass(name));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement