Java的动态加载包

转载 2005年05月21日 13:01:00

在插件化的道路上,我们最为需要的技术就是动态加载,在c#中这点是非常容易实现的,而在java中也早在jdk1.2中就提到了解决方法:

一般来说有重写classloader的方式,但在java.net包中提供了URLClassLoader类,这个类非常有用。非常适合于动态加载。实例如下:

File file = new File(jar文件全路径);
URL url = file.toURL();
URLClassLoader loader = new URLClassLoader(new URL[] { url });
Class tidyClazz = loader.loadClass(所需class的含包名的全名);

在插件的构造过程中,我们需要不停的加载各种包,如果每次都重新构建URLClassLoader,会大量的消耗系统资源和IO,并且这些操作会有大量的重复,所以,解决的方案是将构建好的URLClassLoader变为Threa.currentThread().setContextClassLoader(),根据classLoader的工作模式,这个classLoader同时含有前后两个classLoader的能力,但是我们必须自己记录加载了那些包,而且内存中的对象会大大增加,每加载一个插件都会增加一次,为了解决这个问题,我们必须自己重写classLoader。

java动态加载指定的类或者jar包反射调用其方法

序言        有时候,项目中会用到java动态加载指定的类或者jar包反射调用其方法来达到模块的分离,使各个功能之间耦合性大大降低,更加的模块化,代码利用率更高。模式中的代理模式就用到java的...
  • chenleixing
  • chenleixing
  • 2015年06月08日 08:50
  • 13159

java动态加载jar包,并运行其中的类和方法

动态加载jar包,在实际开发中经常会需要用到,尤其涉及平台和业务的关系的时候,业务逻辑部分可以独立出去交给业务方管理,业务方只需要提供jar包,就能在平台上运行。 下面通过一个实例来直观演示: 第...
  • wawmg
  • wawmg
  • 2014年01月07日 16:58
  • 57476

Java中动态加载jar文件和class文件

概述   诸如tomcat这样的服务器,在启动的时候会加载应用程序中lib目录下的jar文件以及classes目录下的class文件,另外像spring这类框架,也可以根据指定的路径扫描并加载指定的类...
  • mousebaby808
  • mousebaby808
  • 2014年06月17日 17:57
  • 29678

JAVA反射机制--静态加载与动态加载

Java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如pu...
  • JacXuan
  • JacXuan
  • 2016年12月17日 16:44
  • 5640

Python 动态载入包

def get_plugin_by_name(self, package, clazz_name):     """     package 类所在路径     clazz_name 类名  ...
  • Ambulong
  • Ambulong
  • 2017年01月21日 14:05
  • 307

java程序中动态加载jar包并执行

参考了几篇文章 http://www.cnblogs.com/flyingzl/articles/3139028.html 这个写的比较简单些, 加载jar包的类URLClassLoader中使用的...
  • voiceofwind
  • voiceofwind
  • 2016年07月20日 11:35
  • 5189

动态加载JDBC Jar包连接数据库

在用Jmeter的时候,需要构造一些请求数据,所以为了方便大家使用,使用了动态加载jdbc jar包来连接数据库,以下是部分代码片段。 import java.io.*; import java....
  • XiaoTanTongXie
  • XiaoTanTongXie
  • 2016年07月19日 15:43
  • 968

java动态加载类和静态加载类

一.什么是动态加载类 什么是静态加载类 Class.forName 不仅表示类的类类型,还代表了动态加载类。编译时加载是静态加载类, 运行时加载是动态加载类。 请大家区分编译 运行。 二.为何要使用动...
  • su20145104009
  • su20145104009
  • 2016年10月26日 16:23
  • 2350

Java反射之静态加载和动态加载举例小记

静态加载: package com.imooc.加载类; public class Office_Static { public static void main(String[] args) ...
  • u012110719
  • u012110719
  • 2015年04月24日 09:21
  • 1440

Java运行时动态加载类之ClassLoader

需求场景:动态加载类ClassLoaderd,在xml文件中配置加载类名称和方法,: 一、准备 1)在D:\\tmp\\目录下配置a.xml文件: say add...
  • fjssharpsword
  • fjssharpsword
  • 2017年03月22日 17:13
  • 2780
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java的动态加载包
举报原因:
原因补充:

(最多只允许输入30个字)