- 浏览: 1363702 次
- 性别:
- 来自: 江西
文章分类
- 全部博客 (287)
- oracle (30)
- Java (73)
- MySQL (16)
- Myeclipse/eclipse (12)
- javascript (15)
- JSP/Servlet (7)
- maven (14)
- AJAX (2)
- JQuery (9)
- tomcat (8)
- spring (21)
- Linux (28)
- PHP (9)
- UI (1)
- 编程错误及处理 (38)
- 多线程 (18)
- hibernate (10)
- Web Service (3)
- struts2 (6)
- log4j (3)
- SVN (4)
- DWR (1)
- lucene (1)
- 正则表达式 (4)
- jstl (2)
- SSL (3)
- POI (1)
- 网络编程 (1)
- 算法 (2)
- xml (4)
- 加密解密 (1)
- IO (7)
- jetty (2)
- 存储过程 (1)
- SQL Server (1)
- MongoDB (1)
- mybatis (1)
- ETL (1)
- Zookeeper (1)
- Hadoop (5)
- Redis (1)
- spring cloud (1)
最新评论
-
ron.luo:
牛逼,正解!
maven设定项目编码 -
lichaoqun:
java.sql.SQLException: Can't call commit when autocommit=true -
Xujian0000abcd:
Thanks...
Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the clas -
renyuan2ni:
[i][b][u]引用[list]
[*][img][flas ...
Manual close is not allowed over a Spring managed SqlSession -
851228082:
宋建勇 写道851228082 写道<!-- 文件拷贝时 ...
maven设定项目编码
一、自定义类加载器代码:
测试:
测试结果:
辅助测试类:
package foo; import java.io.File; import java.io.IOException; import java.io.InputStream; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class MyLocalClassLoader extends ClassLoader { private Log log = LogFactory.getLog(this.getClass()); public MyLocalClassLoader() { super(); } /* classes文件存放目录 */ private String classesDir; public MyLocalClassLoader(String classesDir) { super(); this.classesDir = classesDir; } @Override protected Class<?> findClass(String name) throws ClassNotFoundException { String classFileName = classesDir + File.separator + StringUtils.replaceChars(name, '.', File.separatorChar) + ".class"; File classF = new File(classFileName); if (classF.exists()) { InputStream input = null; try { input = FileUtils.openInputStream(classF); byte[] b = IOUtils.toByteArray(input); return defineClass(name, b, 0, b.length); } catch (IOException e) { log.error(e.getMessage(), e); } finally { IOUtils.closeQuietly(input); } } else { log.error(classFileName + "文件不存在!"); } return super.findClass(name); } protected void recursive_loadClass(boolean resolve) throws ClassNotFoundException { System.out.println("MyLocalClassLoader.recursive_loadClass()"); } }
测试:
package foo; import java.lang.reflect.InvocationTargetException; import java.util.ResourceBundle; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class MyLocalClassLoaderDemo { private static Log log = LogFactory.getLog(MyLocalClassLoaderDemo.class); public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException { ResourceBundle res = ResourceBundle.getBundle("foo/conf"); Class<?> clazz = new MyLocalClassLoader(res.getString("classesDir")).loadClass("demo.ClassDemo"); Object obj = clazz.newInstance(); log.info(obj.toString()); clazz = new MyLocalClassLoader(res.getString("classesDir")).loadClass("demo.Parent"); clazz = new MyLocalClassLoader(res.getString("classesDir")).loadClass("demo.Child"); obj = clazz.newInstance(); Class<?>[] cc = {}; Object[] oo = {}; log.info(obj.getClass().getMethod("hello", cc).invoke(obj, oo)); } }
测试结果:
辅助测试类:
package demo; public class ClassDemo { @Override public String toString() { return "ClassDemo.toString()"; } }
package demo; public abstract class Parent { public String hello() { return "Parent.hello()"; } }
package demo; public class Child extends Parent { @Override public String hello() { return "Child.hello()"; } }
发表评论
-
java.io.NotSerializableException: java.util.ArrayList$SubList
2016-03-15 11:36 2777错误信息: 原代码: if (null != dto ... -
java.lang.NoSuchMethodError
2015-10-30 19:50 1076在执行命令 java -Djava.ext.dirs=./de ... -
OutOfMemoryError
2015-01-07 10:49 628错误信息: 执行命令(修改前): java -Djava. ... -
URL传递中文参数乱码问题
2014-03-14 12:55 1109项目特殊要求,form表单使用get方式提交,由此出现了中文乱 ... -
Java使用正则进行奇偶替换
2013-12-30 11:20 1549/** * 将位于偶数位的数字1替换为2 */ ... -
Java调用ping命令
2013-11-26 10:26 3616package cn.com.songjy; impor ... -
Linux开机启动Java程序
2013-11-25 15:26 3526一、编写启动Java程序shell脚本(smssend.sh) ... -
单例模式
2013-11-05 09:58 752Java之美[从菜鸟到高手演变]之设计模式 Java开发中 ... -
判定2个对象相等之重写equals方法
2013-10-18 11:03 1047package cn.com.songjy.test; ... -
SAX解析XML文件示例
2013-09-13 17:32 1003package cn.com.songjy.test.xml; ... -
二分查找算法(Binary Search)
2013-09-13 17:01 2366项目中遇到需要从数组中查找数据,但是算法很多,于是根据项目需求 ... -
Iterate over rows and cells(EXCEL文件的读取)
2013-09-13 14:13 4049package cn.com.songjy.test.exce ... -
jdk1.5的Exchanger同步工具
2013-08-27 14:04 646package cn.com.songjy.test.sock ... -
jdk1.5的CountDownLatch同步工具
2013-08-27 13:37 753package cn.com.songjy.test.sock ... -
jdk1.5的Semaphere同步工具
2013-08-23 14:20 1051package cn.com.songjy.test.so ... -
jdk1.5条件阻塞Condition的应用
2013-08-23 09:42 1317package cn.com.songjy.test.sock ... -
jdk1.5读写锁技术的妙用
2013-08-19 22:00 1354/** * ReadWriteLockTest.java ... -
jdk1.5的线程锁技术
2013-08-19 20:25 924/** * LockTest.java * cn.co ... -
Callable与Future的应用
2013-08-19 20:03 1027/** * CallableAndFuture.java ... -
线程并发库的应用
2013-08-17 15:17 890/** * ThreadPoolTest.java * ...
相关推荐
自定义classloader的使用
让Java支持热加载是个不错的想法。如何做到的呢? 1. 定义好接口和实现类 2. 让代理类通过反射的方式调用实现类,对外暴露的是代理类。 3. 自定义URLClassLoader。检查实现类.class文件的...Java自定义classloader;
热修复和插件化是目前比较热门的技术,要想更好的掌握它们需要了解ClassLoader,下面这篇文章主要给大家介绍了关于Android中自定义ClassLoader耗时问题追查的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧
自定义 ClassLoader 加载任何类时的类名。 ":myCommand" 命令位于默认 REPL 命令之上。 scala > val hello = " hello " MyClassLoader loads classOf < root>.$line3 <<中略>> MyClassLoader loads classOf ...
案1:修改序列化byte数据该法可解决序列化最终数据的serialVesionUID不致,但法解决Object的serialVesionUID不案2:反射修改s
ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的
这篇文章主要讲类加载器在android中如何动态的加载其他工程类的过程,对于类加载器的知识就跳过了。
3-7Tomcat中自定义类加载器的使用与源码实现(1).mp4
classloader 源码,自定义classloader
java自定义类加载classloader文档,包括代码,以及详细的原理及过程
eclipse工程格式 博文链接:https://aga.iteye.com/blog/200818
自定义ClassLoader,控制台输入调试。 运行期间 重新载入指定目录的class文件。可实现对于类的功能函数更新。 用到java 反射,@interface 等技术
java9 源码下载 问题引入 我们平时的开发中经常要引入各种sdk,现在我希望在代码中引入 ,你可以把这个demo 看作是MQ 的sdk,echo方法看成是MQ的send方法,功能就是输出序列化好的字符串... public ...
运用代理模式,通过自定义classloader对代码加密,啊;敌法;打飞机
框架开发学习 此仓库给出了在框架开发中经常使用的不同Java概念和编程技术的示例。 例如,当我们想从头开始创建RPC框架时,我们需要了解Java动态代理和序列化。 这是清单: 技术 模块/链接 设想 ...
Java 自定义ClassLoader 实现类的热替换核心代码
通过自定义ClassLoader,实现动态加载apk,jar包功能。
使用自定义Classloader机制,实现xlass的加载。 实现xlass打包的xar(类似class文件打包的jar)的加载:xar里是xlass。 基于自定义Classloader实现类的动态加载和卸载:需要设计加载和卸载。 基于自定义Classloader...
13. 自定义ClassLoader 13 14. double保留两位数的两个方案 18 16. 用户输入输出,文件输入输出范例(1) 19 17.以指定符号分割显示 22 17. 单例模式 22 18. 工厂模式 23 19. 读取配置文件(1) 25 20. 根据libName动态...