类加载器的深入讲解与应用

package java_5;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;public class MyClassLoader extends ClassLoader {static String srcPath;static String destPath;public static void main(String[] args) throws Exception {srcPath = args[0];destPath = args[1];InputStream in = new FileInputStream(srcPath );srcPath = srcPath .substring(0, srcPath.lastIndexOf('\\' ) – 6);OutputStream out = new FileOutputStream(srcPath + "\\" + destPath+ ".class");ClassLoader cl = MyClassLoader.class .getClassLoader().getParent();System. out.println(cl.getClass().getName());addSecrity(out, in);}public static void addSecrity(OutputStream dest, InputStream src)throws IOException {int b = 0;while ((b = src.read()) != -1) {b = b ^ 0xff;dest.write(b);}}@Overrideprotected java.lang.Class<?> findClass(String name)throws ClassNotFoundException {String srcPath = "G:\\workplace\\javase\\lib\\" ;InputStream in = null;try {in = new FileInputStream(srcPath+name+".class" );} catch (FileNotFoundException e) {e.printStackTrace();}ByteArrayOutputStream baos = new ByteArrayOutputStream();try {addSecrity(baos,in);} catch (IOException e) {e.printStackTrace();}byte[] bytes = baos.toByteArray();Class clazz = defineClass (bytes, 0, bytes.length );return clazz;};private String name;public MyClassLoader() {}public MyClassLoader(String name) {this.name = name;}}

,可以提高你的水平。(戏从对手来。

类加载器的深入讲解与应用

相关文章:

你感兴趣的文章:

标签云: