- 浏览: 243162 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (192)
- 技术研究学习 (19)
- 工作总结 (4)
- spring3.x (11)
- mail (2)
- jar (2)
- FCKeditor (1)
- quartz (2)
- json (1)
- jdbc (5)
- struts2 (6)
- java基础 (18)
- jboss (3)
- IT名称解析 (1)
- 测试工具 (2)
- 工作趣谈 (1)
- 数据库 (8)
- js (8)
- jquery (1)
- mysql (20)
- Sql (3)
- Oracle (1)
- easyui (0)
- log4j (1)
- 源码研究 (1)
- Jasper Report (0)
- Jbpm4 (4)
- xml (1)
- ireport (0)
- javavm (1)
- sitemesh (5)
- compass (1)
- jvm (1)
- ext (1)
- lucene (0)
- cxf (1)
- Blazeds (0)
- Resteasy (1)
- jaxb (1)
- tomcat (1)
- Rmi (1)
- BoneCP (1)
- velocity (3)
- OSCache (1)
- EHCache (1)
- 高性能开发 (9)
- 设计模式 (0)
- 网络协议应用 (1)
- Ibatis (1)
- powerdesigner (1)
- 架构师之路 (2)
- memcached (4)
- MapReduce (1)
- 测试组 (1)
- 图像处理 (2)
- LoadRunner (2)
- 报表 (1)
- 负载均衡 (1)
- 分布式 (3)
- c# (1)
- java中一些特殊问题 (3)
- java 8 (1)
- Mogodb (1)
- 项目设计与实现 (2)
- Ubuntu (1)
- eclipse (1)
- gradle (1)
- 私有云 (1)
- redis (1)
- 移动前端 (1)
最新评论
1.参考老外:
ClassPathUpdater.add("E:\\workspaces\\MyDemos\\MyClass.class");
String path = "E:\\workspaces\\MyDemos\\";
URL url = new URL("file", null, path);
URLClassLoader loader = new URLClassLoader(new URL[] {url});
Class clazz = loader.loadClass("MyClass");
2.rewrite ClassLoader
MyClassLoader mcl = new MyClassLoader();
clazz = mcl.loadClass("E:\\workspaces\\MyDemos\\MyClass.class");
public class ClassPathUpdater { /** Used to find the method signature. */ private static final Class[] PARAMETERS = new Class[] { URL.class }; /** Class containing the private addURL method. */ private static final Class CLASS_LOADER = URLClassLoader.class; /** * Adds a new path to the classloader. If the given string points to a file, * then that file's parent file (i.e., directory) is used as the directory * to add to the classpath. If the given string represents a directory, then * the directory is directly added to the classpath. * * @param s * The directory to add to the classpath (or a file, which will * relegate to its directory). */ public static void add(String s) throws IOException, NoSuchMethodException, IllegalAcces***ception, InvocationTargetException { add(new File(s)); } /** * Adds a new path to the classloader. If the given file object is a file, * then its parent file (i.e., directory) is used as the directory to add to * the classpath. If the given string represents a directory, then the * directory it represents is added. * * @param f * The directory (or enclosing directory if a file) to add to the * classpath. */ public static void add(File f) throws IOException, NoSuchMethodException, IllegalAcces***ception, InvocationTargetException { f = f.isDirectory() ? f : f.getParentFile(); add(f.toURI().toURL()); } /** * Adds a new path to the classloader. The class must point to a directory, * not a file. * * @param url * The path to include when searching the classpath. */ public static void add(URL url) throws IOException, NoSuchMethodException, IllegalAcces***ception, InvocationTargetException { Method method = CLASS_LOADER.getDeclaredMethod("addURL", PARAMETERS); method.setAccessible(true); method.invoke(getClassLoader(), new Object[] { url }); } private static URLClassLoader getClassLoader() { return (URLClassLoader) ClassLoader.getSystemClassLoader(); } }
ClassPathUpdater.add("E:\\workspaces\\MyDemos\\MyClass.class");
String path = "E:\\workspaces\\MyDemos\\";
URL url = new URL("file", null, path);
URLClassLoader loader = new URLClassLoader(new URL[] {url});
Class clazz = loader.loadClass("MyClass");
2.rewrite ClassLoader
static class MyClassLoader extends ClassLoader { @Override public Class<?> findClass(String name) { try { FileInputStream in = new FileInputStream(name); ArrayList<Byte> l = new ArrayList<Byte>(); int c; while ((c = in.read()) != -1) { l.add(new Byte((byte)c)); } byte[] b = new byte[l.size()]; for (int i = 0; i < l.size(); i++) { b[i] = l.get(i).byteValue(); } return defineClass(b, 0, b.length); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
MyClassLoader mcl = new MyClassLoader();
clazz = mcl.loadClass("E:\\workspaces\\MyDemos\\MyClass.class");
发表评论
-
java集合查询测试结果
2013-06-08 09:41 1113package test.com; import j ... -
对象池修订版
2013-03-08 14:09 0public class ObjectPool { ... -
深入研究java.lang.Process类
2013-03-07 12:07 830一、概述 Process ... -
深入研究java.lang.Runtime类
2013-03-07 11:54 922一、概述 Runtime ... -
JAVA图像缩放处理
2012-11-09 16:33 884import java.awt.image.Buffere ... -
oa
2012-10-19 18:03 0http://code.google.com/p/joffic ... -
Frameset导致Cookies和Session丢失的原因及解决办法
2012-09-29 11:27 74341.Frameset导致Cookies和Session丢失 ... -
java synchronized详解
2012-09-29 11:28 787来源:http://www.cnblogs.com/GnagW ... -
长连接与短连接
2012-09-29 11:29 999来源:http://www.cnblogs.com ... -
java实时监测文件夹的变化,允许多用户同时访问,完成文件转移
2012-10-04 09:26 1143来源:http://www.189works.com/arti ... -
jndi调用时,各种应用服务器InitialContext的写法
2012-09-27 11:12 903调用ejb时,如果客户端和ejb不在同一个jvm,就要 ... -
jvm字节码执行引擎
2012-08-16 12:25 1031一. 运行时栈帧结构 1. 栈帧是用于支持虚拟机进行方法调用 ... -
ClassWorking技术
2012-08-16 12:25 1335ClassWorking技术 IBM所提出的,动态地监测、修 ... -
quartz-scheduler的集群化配置
2012-08-13 09:33 1639由于集群只能工作在JDBC-Jobstore(JobStore ... -
dbcp连接池实现
2012-08-09 13:10 1599dbcp连接池实现commons DBCP 配置参数简要说明 ... -
常用jar包之commons-beanutils使用
2012-08-20 14:07 1408核心提示:Jakarta Commons 项目提供了相当丰富的 ... -
aop详解
2012-08-09 13:09 1290使用Spring进行面向切面 ... -
Dwr2+Struts2+Spring2.5+Hibernate3整合
2012-08-08 12:33 9281.//如果不用,启动时不会出错,但使用Dwr时,会抛出异常: ... -
AOP面向编程的使用场合
2012-08-07 20:45 945AOP(Aspect-Oriented Programming ... -
23种设计模式详解
2012-08-08 13:41 1331Java中23种设计模式 目录 1. 设计模式 3 1. ...
相关推荐
NULL 博文链接:https://zheng12tian.iteye.com/blog/1488813
NULL 博文链接:https://flycatdeng.iteye.com/blog/2100653
java热加载Class文件.zipjava热加载Class文件.zipjava热加载Class文件.zip
ClassLoader概念 我们知道,Java源文件(.java...所以ClassLoader就是用来动态加载class文件到内存当中用的。 ClassLoader的分类 Android中的常用几种类加载器类型继承关系划分可以用一组关系图来表示 BootClassLoder
java热加载Class文件
Java 语言是一种具有动态性的解释型编程语言,当指定程序运行的时候, Java 虚拟机就将编译生成的 .
让Java支持热加载是个不错的想法。如何做到的呢? 1. 定义好接口和实现类 2. 让代理类通过反射的方式调用实现类,对外暴露的是代理类。...Java动态加载class; Java覆盖已加载的class; Java自定义classloader;
class文件热加载,上传class文件实现热加载
NULL 博文链接:https://name327.iteye.com/blog/1554558
spring的bean动态加载则需要对相应的bean进行动态注册,以及jar与class文件动态加载。测试示例中是spring boot 的部分代码,动态加载的内容为接口实现类,且初始化时加载本地的实现类,动态加载后改为非程序加载目录...
JVM加载class文件的原理机制 Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中
第2节: class文件及类加载详解-01第2节: class文件及类加载详解-01第2节: class文件及类加载详解-01第2节: class文件及类加载详解-01第2节: class文件及类加载详解-01第2节: class文件及类加载详解-01第2节: ...
JVM加载class文件的原理机制.pdf
JVM加载class文件的原理机制JVM加载class文件的原理机制 JVM中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java中的类加
(1)Android 动态加载dex文件 (2)Android动态加载APK文件(代理模式) (3)Hook技术动态加载APK文件中的Activity 二、Android 动态加载dex文件 1.反射方式加载(较麻烦,不介绍),需要反射出具体的方法等 2....
主要介绍了Java 动态加载jar和class文件实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
动态编译字符串成java,并且添加class到jvm
资源文件加载类 这里是用的是class getResourceAsStream "path" 来加载资源文件的
对class 文件进行反编译 排查线上的class文件的代码是否一致,可以将文件反编译后 ,对比本地代码。 支持拖拉 自动加载该类的引用类
首先第一个是 jar 文件的制作,Java 里面直接把 .class 文件打包到 .jar 文件里面就可以了,但是 Android 的 Dalvik VM 是不认 Java ...要动态加载其它类,可以用的 Class Loader 有: DexClassLoader,PathClassLoader