public class CryptoClassLoader extends ClassLoader {
private int key;
public CryptoClassLoader(int k){
this.key = k;
}
protected Class findClass(String name) throws ClassNotFoundException {
byte[] classBytes = null;
try{
classBytes = loadClassBytes(name);
}catch(IOException e){
throw new ClassNotFoundException(name);
}
Class cl = defineClass(name,classBytes,0,classBytes.length);
if(cl==null)
throw new ClassNotFoundException(name);
return cl;
}
private byte[] loadClassBytes(String name)throws IOException{
String cname = name.replace(".","/")+".caesar";
FileInputStream in = null;
in = new FileInputStream(cname);
try{
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int ch;
while((ch=in.read())!=-1){
byte b = (byte)(ch-key);
buffer.write(b);
}
in.close();
return buffer.toByteArray();
}finally{
in.close();
}
}
}
protected Class findClass(String name)
类加载器应该覆盖该方法,以查找类的字节码,并通过调用defineClass方法将字节码传给虚拟机.
Class defineClass(String name,byte[] data,int offset,int length)
参数 name 类名使用.作为包名分隔符
data 用于存放该类字节码的数组
offset 数组中字节码的起始位置
length 数组中字节码的长度
分享到:
相关推荐
自定义类加载器实现自定义加载。自定义类加载器实现自定义加载
3-7Tomcat中自定义类加载器的使用与源码实现(1).mp4
看完一个Java加载原理教程后,写了这个自己的类加载器,作个笔记,以便以且使用
java类加载器学习二、自定义类加载器
Java加壳核心代码,请调试后使用。本资源配合博客进行讲解,博客地址:http://blog.csdn.net/JavaBuilt/article/details/79522837
主要介绍了Java基于自定义类加载器实现热部署过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
3-7Tomcat中自定义类加载器的使用与源码实现(2).mp4
主要介绍了Java实现的自定义类加载器,结合具体实例形式分析了java自定义类加载器的原理与具体实现技巧,需要的朋友可以参考下
JCL是可配置,动态和可扩展的自定义类加载器,可直接从Jar文件和其他来源加载Java类。 这样做的动机是创建隔离的类加载器,该类加载器可以轻松地与IoC框架(如Spring)和Web应用程序集成。 整个库,包括其代码库和...
主要介绍了java自定义类加载器代码示例,具有一定借鉴价值,需要的朋友可以了解下。
ClassLoader的API使用和自定义
本文主要介绍了java 类加载与自定义类加载器。具有一定的参考价值,下面跟着小编一起来看下吧
主要介绍了Java语言中的自定义类加载器实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
DevLoader.zip tomcat 类加载器
类加载器 以下代码是一个自定义类加载器,它从 jar 文件加载类。
它使用自定义类加载器从Web存档(WAR)中的备用路径或JAR加载类。这有什么用? 考虑一个也应该具有命令行界面的Web应用程序。 当然,您将创建三个模块,并将业务逻辑移至一个模块,并将Web应用程序和CLI移至其他...
自定义Java类加载器demo,自定义了一个classLoader,重写了loadClass 和findClass,注意 loadClass打破了双亲委派机制,所有的类都要在自定义的class文件中找到,而findClass遵循了双亲委派机制
java,自定义加载类的实现。1.自定义加载类的实现。2双亲委派的验证。3如何制定父类加载器。