- 浏览: 136761 次
- 性别:
- 来自: 北京
文章分类
引用
1.自定义类加载器
public interface InterfaceTest { public void test(); }
public class IntefaceImpl implements InterfaceTest { @Override public void test() { // TODO Auto-generated method stub System.out.println("------------"); } }
public class MyClassLoader extends ClassLoader{ private String path = "/home/kevin/"; /** * 加载本地class */ @Override protected Class<?> findClass(String name) throws ClassNotFoundException { String namePath = name.replace(".", "/"); String classPath = path + namePath + ".class"; InputStream is = null; ByteArrayOutputStream os = null; try { is = new FileInputStream(new File(classPath)); os = new ByteArrayOutputStream(); int b = 0; while ((b = is.read()) != -1) { os.write(b); } byte[] bytes = os.toByteArray(); os.flush(); return defineClass(name, bytes, 0, bytes.length); } catch (Exception e) { e.printStackTrace(); }finally{ try { if(os!=null) os.close(); if(is!=null) is.close(); } catch (IOException e1) { os=null; is = null; } } return null; } /** * 此种方式加载的两个jar中的类无法相互访问,因为new URLClassLoader出来的类加载器是兄弟关系 * 调用URLClassloader的protected方法addURL即可实现在需要时加载jar到loader中。 * @throws Exception */ public void test()throws Exception{ //加载jar包 File file = new File("/home/kevin/workspace/eclipsespace/JavaTest/bin/com/a.jar"); URL uri = file.toURI().toURL(); System.out.println(uri); //或者加载网络jar包 uri = new URL("http://xxx.xxx.com/resources/ebook/a.zip"); URLClassLoader load = new URLClassLoader(new URL[]{uri}); System.out.println(load.loadClass("IntefaceImpl")); ((InterfaceTest)(load.loadClass("IntefaceImpl").newInstance())).test(); } public static void main(String[] args) { MyClassLoader myLoader = new MyClassLoader(); try { Class myClass = myLoader.loadClass("IntefaceImpl"); Object obj = myClass.newInstance(); ((InterfaceTest)obj).test(); // Method method = myClass.getMethod("say", null); // method.invoke(obj, null); } catch (Exception e) { e.printStackTrace(); } } }
发表评论
-
storm 安装
2013-09-02 16:32 3033------------------------------- ... -
动态代理性能比较
2013-01-18 17:02 1127转自http://javatar.iteye.com/blog ... -
jackson 学习
2012-11-13 15:42 9821.json 转为object对象 public clas ... -
java 线程池 异常 处理 机制 分析
2012-10-31 19:34 2077public class ThreadTest { ... -
ThreadPoolExecutor 原理-- java 线程池
2012-08-08 19:14 1109整个ThreadPoolExecutor的任务处理有4 ... -
java 缓冲
2012-08-08 19:12 992import org.apache.log4j.Logge ... -
java 程序消耗 cpu 100% 查找方法
2012-05-16 14:38 17177问题原因:由于HashMap是非线程安全的,在多线程访问时,造 ... -
java io
2012-04-24 11:06 8861、按字节读取文件内容 2、按字符读取文件内容 3、按行读取 ... -
java 内省
2011-11-20 22:58 789java内省 -
系统常用工具类
2011-04-20 17:46 9791.ArithUtil.java ... -
spring 面向切面编程
2010-12-27 17:03 1055@Aspect public class AspectCoup ... -
jxl 写入excel
2010-11-10 13:52 9921.程序调用 ReportInterface report ... -
java 读取excel
2010-11-10 09:04 920package com.longtuo.client.act ... -
java 生成略缩图
2010-10-20 17:21 1177import java.awt.Graphics2D; imp ... -
XStream简单介绍
2010-09-10 15:44 1653创建能够序列化的类 这是一组简单的类。XStream能把这 ... -
java中对集合类的排序
2010-05-04 13:47 8681.第一种 public class User impleme ... -
Java 获取操作系统信息与Desktop类
2009-11-17 16:24 1348import java.util.Properties; ... -
java 事物处理
2009-10-15 10:52 1401public boolean deleteSchedule ...
相关推荐
java类加载器学习三、类加载器的委托模式
java类加载器学习二、自定义类加载器
Java类加载器学习总结.pdf
/** * java类加载器 * 类加载器负责加载与连接,这个过程是在运行时进行的,这种机制为java提供极大的灵活性 * * 类的生命周期 * class文件
类装载器学习一、类加载器的基本概念 类装载器学习一、类加载器的基本概念 类装载器学习一、类加载器的基本概念
本学习讲义是关于java类加载和反射机制需要注意的要点学习,内容详细
(1)双亲模型类加载器的作用:从class文件定义出class对象通过defineClass()方法进行定义类加载器 初始类加载器关系:该类的定义类加载器是该类
学习类装入的工作方式以及 JVM 如何帮助找出类装入问题 Lakshmi Shankar, Java 技术中心开収团队, IBM Hursley 实验室 Simon Burns (simon_burns@uk.ibm.com), Java 技术中心开収团队, IBM Hursley 实验室 简介: 类...
此外,我们还会探讨Java程序的类加载器和双亲委派机制,以及自定义类加载器和类卸载的实现原理和应用方法。 总的来说,本资源将为Java程序员提供全面的Java字节码和类加载原理和实践经验。通过学习本资源,开发人员将...
学习概述:本模块深入讲解了Java类加载方面的知识,Java类加载器和类加载机制以及类加载原理 学习目标:掌握类加载机制和原理,能够独立开发自己的类加载器。 1.类的加载 什么是类加载? 类加载是指将类的...
java中的类加载器:java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap, ExtClassLoader,AppClassLoader类加载器也是一个java类,因此类加载器也需要被加载,所以...
java ClassLoader的学习 java是一门解释执行的语言,由开发人员编写好的java源文件先编译成字节码文件.class... 一个类如果要被JVM所调度执行,必须先把这个类加载到JVM内存里,java.lang下有个很重要的类ClassL
【Java面试题】类加载器
主要介绍了Java基于自定义类加载器实现热部署过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Java类加载器层次结构原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Java的内部类与类的加载器,是Java入门学习中的基础知识,需要的朋友可以参考下
给大家详细讲述了java类的加载过程以及类加载器的相关知识点内容,有需要的朋友可以学习下。