使用URLClassLoader动态加载类
2010-04-08 15:18
471 查看
一般动态加载类都是直接用Class.forName()这个方法,但这个方法只能创建程序中已经引用的类,并且只能用包名的方法进行索引,比如Java.lang.String,不能对一个.class文件或者一个不在程序引用里的.jar包中的类进行创建。但使用URLClassLoader就可以直接根据创建一个单独的.class文件,并且每当重新载入后并实例化后都是最新的方法。类似于jsp,当你在eclipse中改了一个jsp并且存储后,只要刷新页面就可以得到最新的结果而不用重新启动服务器。
URLClassLoader是在java.net包下的一个类。他的构造函数输入参数需要输入1个URL数组。假设我们有一个编译后的class文件在C:/URLClass/testClass.class中,URLClassLoader进行加载 ,其中有个方法为test,我们需要动态加载这个类并且运行test方法
Java代码
File xFile=new File("C:/URLClass");
URL xUrl= xFile.toURL() ;
URLClassLoader ClassLoader=new URLClassLoader(new URL[]{ xUrl });
Class xClass=ClassLoader.loadClass("testClass");
Object xObject=xClass.newInstance();
Method xMethod=xClass.getDeclaredMethod("test");
代码中,省略了try catch部分,请自行添加 。 在你的工程运行前,完全可以不用引入testClass这个类,通过在运行时的动态加载就可以运行其中的方法。
URLClassLoader是在java.net包下的一个类。他的构造函数输入参数需要输入1个URL数组。假设我们有一个编译后的class文件在C:/URLClass/testClass.class中,URLClassLoader进行加载 ,其中有个方法为test,我们需要动态加载这个类并且运行test方法
Java代码
File xFile=new File("C:/URLClass");
URL xUrl= xFile.toURL() ;
URLClassLoader ClassLoader=new URLClassLoader(new URL[]{ xUrl });
Class xClass=ClassLoader.loadClass("testClass");
Object xObject=xClass.newInstance();
Method xMethod=xClass.getDeclaredMethod("test");
代码中,省略了try catch部分,请自行添加 。 在你的工程运行前,完全可以不用引入testClass这个类,通过在运行时的动态加载就可以运行其中的方法。
相关文章推荐
- 使用URLClassLoader动态加载类
- 【java】动态加载类-URLClassLoader
- 使用URLClassLoader加载mysql数据库
- Java使用URLClassLoader加载指定位置的类
- URLClassLoader使用方法和实例 类加载器
- ClassLoader,URLClassLoader,类的动态加载!
- Java运行时动态加载类之URLClassLoader
- Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
- Android 安全——Java环境动态加载Jar之ClassLoader预热
- Android动态加载jar DexClassLoader 出现ClassNotFound的问题
- QML事件处理--使用Loader动态加载组件
- java中使用URLClassLoader访问外部jar包的java类
- weblogic websphere 和 liberty profile 在使用struts2中遇到的URLClassLoader [struts2CleanupFilter]未装入
- Android插件化开发之动态加载基础之ClassLoader工作机制
- loader,URLLoader,URLStream三种动态加载资源的具体使用场合和区别 及今日心得体会
- URLClassLoader加载jar包
- Java运行时动态加载类之ClassLoader加载class及其依赖jar包
- URLClassLoader入门使用
- 类加载器[3]自定义类加载器[2]:URLClassLoader
- Android DexClassLoader/PathClassLoader 动态加载jar/APK