package com.cad.JvmTest;
import java.io.FileNotFoundException;
public class obj6 extends ClassLoader{
/**
* 把自定义的类加载写在findClass()方法中,
* @param name
* @return
* @throws ClassNotFoundException
*/
protected Class<?> findClass(String name) throws ClassNotFoundException {
try{
byte[] result = getClassFromCustompath(name);
if(result == null){
throw new FileNotFoundException();
}else{
return defineClass(name,result,0,result.length);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
throw new ClassNotFoundException(name);
}
private byte[] getClassFromCustompath(String name) {
// 如果指定路径字节码文件进行了加密,则需要在此方法中进行解密操作。
return null;
}
public static void main(String[] args) {
obj6 obj = new obj6();
try {
Class<?> clazz = Class.forName("One",true,obj);
Object object = clazz.newInstance();
System.out.println(obj.getClass().getClassLoader());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
}
}
自定义类加载器的代码
最新推荐文章于 2024-04-15 09:19:21 发布