zoukankan      html  css  js  c++  java
  • ClassLoader

    import java.io.ByteArrayOutputStream;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;

    public class MyClassLoader extends ClassLoader{

     /**
      * @param args
      */
     public static void main(String[] args) throws Exception {
      // TODO Auto-generated method stub
      String srcPath = args[0];
      String destDir = args[1];
      FileInputStream fis = new FileInputStream(srcPath);
      String destFileName = srcPath.substring(srcPath.lastIndexOf('\')+1);
      String destPath = destDir + "\" + destFileName;
      FileOutputStream fos = new FileOutputStream(destPath);
      cypher(fis,fos);
      fis.close();
      fos.close();
     }
     
     private static void cypher(InputStream ips ,OutputStream ops) throws Exception{
      int b = -1;
      while((b=ips.read())!=-1){
       ops.write(b ^ 0xff);
      }
     }

     private String classDir;

     @Override
     protected Class<?> findClass(String name) throws ClassNotFoundException {
      // TODO Auto-generated method stub
      String classFileName = classDir + "\"  + name.substring(name.lastIndexOf('.')+1) + ".class";
      try {
       FileInputStream fis = new FileInputStream(classFileName);
       ByteArrayOutputStream  bos = new ByteArrayOutputStream();
       cypher(fis,bos);
       fis.close();
       System.out.println("aaa");
       byte[] bytes = bos.toByteArray();
       return defineClass(bytes, 0, bytes.length);
      } catch (Exception e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      return null;
     }
     
     public MyClassLoader(){
      
     }
     
     public MyClassLoader(String classDir){
      this.classDir = classDir;
     }
    }

  • 相关阅读:
    Linux之20——sudo命令
    Linux之18——Linux下安装MySQL及远程连接MySQL
    Linux之17——Git安装及使用以及连接GitHub方法详解
    Linux之16——free性能调优命令
    Linux之15——nc命令详解
    Linux之14——curl命令详解
    Linux之13——常用统计命令之wc
    15 Python 迭代器和生成器
    16 Python 递归函数
    17 python 内置函数
  • 原文地址:https://www.cnblogs.com/aukle/p/3228599.html
Copyright © 2011-2022 走看看