ClassLoader 与 URLClassLoader 的用法
来源:互联网 发布:c语言switch case格式 编辑:程序博客网 时间:2024/06/01 08:37
- 读取配置文件中的信息
- 配置文件的内容:
用URLClassLoader读配置文件内容:
- import java.io.IOException;
- import java.net.URL;
- import java.net.URLClassLoader;
- import java.util.Properties;
- public class Testext {
- public staticvoid main(String[] args) throws IOException {
- Properties properties = new Properties();
- URL[] urls = new URL[] { new URL("file:/"
- + System.getProperty("user.dir") +"/ravageWeb/") };
- URLClassLoader ucl = new URLClassLoader(urls);
- //ClassLoader cl = Testext.class.getClassLoader(); //这两行也可以不写
- //cl = ucl; //如果写,下面就要改为:cl.getResourceAsStream...
- properties.load(ucl.getResourceAsStream("resources/testpro.properties"));
- System.out.println(properties.getProperty("sui"));
- }
- }
遇到的问题:1. "/ravageWeb/" 中第二个 / 可写可不写。 但是若改为 "/ravageWeb/resources/" 则resources后必须加 / 否则报NullPointerException
用ClassLoader读配置文件内容:
[html] view plaincopyprint?
- import java.io.IOException;
- import java.util.Properties;
- public class Testext {
- public static void main(String[] args) throws IOException {
- Properties properties = new Properties();
- properties.load(Testext.class.getClassLoader()
- .getResourceAsStream("resources/testpro.properties"));
- System.out.println(properties.getProperty("sui"));
- }
- }
import java.io.IOException;import java.util.Properties;public class Testext {public static void main(String[] args) throws IOException {Properties properties = new Properties();properties.load(Testext.class.getClassLoader().getResourceAsStream("resources/testpro.properties"));System.out.println(properties.getProperty("sui"));}}
总结:很显然ClassLoader与URLClassLoader的区别是:
ClassLoader只能读位于classpath下的文件(即:resources/testpro.properties必须放到src目录下,编译后进入bin目录);
而URLClassLoader可以读任意目录下的文件!
2. 载入一个类
用ClassLoader载入一个类:
- import java.io.IOException;
- public class Testext {
- public static void main(String[] args) throws IOException,
- ClassNotFoundException {
- Class c = Testext.class.getClassLoader().loadClass("stalk.STalkClient");
- System.out.println(c.getName()); //输出:stalk.STalkClient
- }
- }
用URLClassLoader载入一个类:
- import java.io.IOException;
- import java.net.URL;
- import java.net.URLClassLoader;
- public class Testext {
- public static void main(String[] args) throws IOException,
- ClassNotFoundException {
- URL[] urls = new URL[] { new URL("file:/"
- + System.getProperty("user.dir") + "/ravageWeb/") };
- URLClassLoader ucl =new URLClassLoader(urls);
- Class c = ucl.loadClass("NoPackage");
- System.out.println(c.getName());
- }
- }
遇到的问题:"/ravageWeb/" 中第二个 / 必须写,否则报ClassNotFoundException总结:
ClassLoader只能load位于classpath(src目录)下的类;
而URLClassLoader可以load任意目录下的类!
- ClassLoader 与 URLClassLoader 的用法
- 黑马程序员:ClassLoader 与 URLClassLoader 的用法!
- ClassLoader,URLClassLoader,类的动态加载!
- ClassLoader与Tomcat的ClassLoader
- ClassLoader的用法
- 自定义类加载器(ClassLoader + URLClassLoader)
- URLClassLoader
- URLClassLoader
- URLClassLoader
- URLClassLoader
- URLClassLoader
- ClassLoader与类的加载
- ClassLoader的分析与使用
- getResource的用法对于class和classloader
- java技术之UrlClassLoader 实例 -- UrlClassLoader的作用
- URLClassLoader中loadClass的使用
- URLClassLoader加载类的路径
- URLClassLoader 的一个小细节
- NYOJ79,拦截导弹
- surfaceView的使用
- iOS开发:xcode4中使用静态库和工作区
- 行为设计模式---迭代器模式(Iterator)
- 新手建站要注意的八大事项
- ClassLoader 与 URLClassLoader 的用法
- 字串查找算法总结及MS的strstr源码
- 数据类型json 和 object 的相互转化
- 【HDU】4115 Eliminate the Conflict 2-sat
- poj 2831 次小生成树模板
- spring 3中新增的@value注解
- BMP(图像文件格式(Bitmap))
- pkg-config的用法
- 使用axis轻松调用Webservice