A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 林豪 于 2012-5-26 17:06 编辑
  1. <p>import java.util.*;

  2. public class ClassLoaderTest {

  3.         public static void main(String[] args)throws Exception{
  4.                 Class clazz = new MyClassLoader("itcastlib").loadClass("ClassLoaderAttachment");
  5.                 Date d1 = (Date)clazz.newInstance();
  6.                 System.out.println(d1);

  7.         }

  8. }
  9. import java.io.*;

  10. public class MyClassLoader extends ClassLoader {

  11.         public static void main(String[] args)throws Exception {
  12.                 String srcPath1 = args[0];
  13.                 String srcPath2= args[1];
  14.                 String destdir= args[2];
  15.                 String srcPath = srcPath1+' '+srcPath2;
  16.                 FileInputStream fis = new FileInputStream(srcPath);
  17.                 String destFileName= srcPath.substring(srcPath.lastIndexOf('\\')+1);
  18.                 String destPath = destdir +"\\" +destFileName;
  19.                 FileOutputStream fos = new FileOutputStream(destPath);
  20.                 cypher(fis,fos);
  21.                 fis.close();
  22.                 fos.close();

  23.         }
  24.         
  25.         private static void cypher(InputStream is,OutputStream os)throws Exception{
  26.                 int b = -1;
  27.                 while((b=is.read())!=-1){
  28.                         os.write(b^0xff);
  29.                 }
  30.         }
  31.         private String classDir;
  32.         @Override
  33.         protected Class<?> findClass(String name) throws ClassNotFoundException {
  34.                 String classFileName = classDir + "\\" + name + ".class";
  35.                 try {
  36.                         FileInputStream fis = new FileInputStream(classFileName);
  37.                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
  38.                         cypher(fis,bos);
  39.                         fis.close();
  40.                         System.out.println("aaa");
  41.                         byte[] bytes = bos.toByteArray();
  42.                         return defineClass(bytes, 0, bytes.length);
  43.                 } catch (Exception e) {
  44.                         e.printStackTrace();
  45.                 }
  46.                
  47.                
  48.                 return null;
  49.         }
  50.         
  51.         public MyClassLoader(){
  52.                  
  53.         }
  54.         public MyClassLoader(String classDir){
  55.                 this.classDir = classDir;
  56.                
  57.         }
  58.         

  59. }
复制代码
报错:Exception in thread "main" java.lang.ClassFormatError: Incompatible magic value 889275713 in class file <Unknown>

求解!!!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马