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);
}
}
@Override
protected 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;
}
}
相关推荐
此外,我们还会探讨Java程序的类加载器和双亲委派机制,以及自定义类加载器和类卸载的实现原理和应用方法。 总的来说,本资源将为Java程序员提供全面的Java字节码和类加载原理和实践经验。通过学习本资源,开发人员将...
在知识的讲解上,本书采用理论与实践相结合的方式,从程序运行的内部机制进行分析讲解,并通过大量的实例和实验来验证并运用本书的知识。.. 本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很...
在知识的讲解上,本书采用理论与实践相结合的方式,从程序运行的内部机制进行分析讲解,并通过大量的实例和实验来验证并运用本书的知识。.. 本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很...
在知识的讲解上,本书采用理论与实践相结合的方式,从程序运行的内部机制进行分析讲解,并通过大量的实例和实验来验证并运用本书的知识。.. 本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很...
在知识的讲解上,本书采用理论与实践相结合的方式,从程序运行的内部机制进行分析讲解,并通过大量的实例和实验来验证并运用本书的知识。.. 本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很...
第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、javamail、ejb 3的session bean、message driven bean、jpa、jax-ws 2、jaas等java ee知识,这部分知识以jsf+ejb 3+jpa整合开发为重点,通过使用netbeans ide工具...
2.1-类加载器 ssm-classLoader项目地址: : 2.2-反射机制 ssm-reflection-demo项目地址: : 2.3-动态代理 ssm-proxy项目地址: : 3-设计模式 ssm-design-pattern项目地址: : 5SpringMVC基础演示项目 6-深入...
7.4.1 类与类加载器 7.4.2 双亲委派模型 7.4.3 破坏双亲委派模型 7.5 本章小结 第8章 虚拟机字节码执行引擎 8.1 概述 8.2 运行时栈帧结构 8.2.1 局部变量表 8.2.2 操作数栈 8.2.3 动态连接 8.2.4 方法...
内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
│ 高并发编程第二阶段49讲、自定义类加载器ClassLoader顺便问候了一下世界.mp4 │ 高并发编程第二阶段50讲、ClassLoader父委托机制详细介绍.mp4 │ 高并发编程第二阶段51讲、加密解密类加载实战演示.mp4 │ 高...
内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
实例变量与类变量 类变量的作用及析构函数 类的继承 经典类与新式类的继承顺序 继承实例讲解 多态实例讲解 本节作业之选课系统开发 第7周 心灵分享 上节回顾 静态方法、类方法、属性方法 课堂扯淡 深入讲解类的...
类加载器的高级特性(自定义类加器实现加密解密) iBATIS开源主流框架(实现半自动化hibernate) 企业实用技能之详解(眼睛横纹模式验证码防止恶意登陆) 动态页面的静态化处理 图片上传技术 在springMVC中实现原始的Excel...
Windows的启动是一个复杂的过程,从加载器(NTLDR或WinLoad)开始工作到Windows子系统准备就绪,中间经历了若干个复杂的步骤,包括内核和执行体的初始化,创建系统进程和线程,对象管理器初始化基本对象,I/O管理器...
深入分析了pe文件头、导入表、导出表、重定位表、资源表、延迟导入表、线程局部存储、加载配置信息等核心技术的概念、原理及其编程方法,有针对性地讲解了程序设计中的重定位、程序堆栈、动态加载等;第二部分讨论了...
最后为了香车美女,海景别墅,让源码为实力代言~ ...1-1 实力护航:用SpringBoot源码为实力代言 试看第2章 全局流程解析【一图胜千言,一探启动加载器之魅力】本章开篇就直奔主题:动手进行开发环境搭建;...
涉及安全领域的各个方面和Windows系统的进程管理和底层机制:实战性强,以案例驱动的方式讲解了Windows PE文件格式在加密与解密、软件汉化、逆向工程、反病毒等安全领域的应用,不仅每个知识点都配有小案例,而且...