1、写一个加载器用来加载的类、一个测试类
package com.xiaozhi.myclassloader;
public class ClassLoaderAttachment {
@Override
public String toString() {
return "hello heima";
}
}
测试类:
package com.xiaozhi.testmyclassloader;
import com.xiaozhi.myclassloader.ClassLoaderAttachment;
public class Test {
public static void main(String[] args) {
System.out.println(new ClassLoaderAttachment().toString());
}
}
2、实现MyClassLoader的加密功能
package com.xiaozhi.myclassloader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class MyClassLoader {
public static void main(String[] args) throws Exception{
String srcPath = args[0];
String destPah = args[1];
String fileName = srcPath.substring(srcPath.lastIndexOf("\\") + 1);
destPah = destPah +"\\"+fileName;
FileInputStream fileInputStream = new FileInputStream(srcPath);
FileOutputStream fileOutputStream = new FileOutputStream(destPah);
encrypt(fileInputStream, fileOutputStream);
}
public static void encrypt(FileInputStream fileInputStream,FileOutputStream fileOutputStream) throws Exception
{
int b = 0;
while((b=fileInputStream.read())!=-1)
{
fileOutputStream.write(b^0xff);
}
fileInputStream.close();
fileOutputStream.close();
}
}
在项目下新建mylib文件夹(用来存放加密的class文件),然后Run Configurations进入以下界面
运行完后,在mylib上按F5刷新,将生成的class文件,复制到bin目录下class文件存放处。再次运行测试类。报错,说明加密成功。