关闭

使用class.getClassLoader().getResource("")的注意事项

标签: javaexceptionclassjarfilethread
7195人阅读 评论(0) 收藏 举报
分类:


前几天在写一个C/S的小工具,使用class.getClassLoader().getResource("")时,发现一个问题,程序如下:

 

package com.syj;

public class ClassLoaderTest {
    
public static void main(String[] args){
        String classPath1 
= ClassLoaderTest.class.getClassLoader().getResource(
                
"config.ini").toString();
        System.out.println(
"classPath1:" + classPath1);
        String classPath2 
= ClassLoaderTest.class.getClassLoader().getResource(
                
"").toString();
        System.out.println(
"classPath2:" + classPath2);
    }
}

打成jar包test.jar后
执行
java -jar test.jar
pause

执行结果
classPath1:jar:file:/D:/DEV.WORK/works_acnt/Test/test.jar!/config
Exception in thread "main" java.lang.NullPointerException
        at com.syj.ClassLoaderTest.main(ClassLoaderTest.java:9)

执行
set CLASSPATH=%CLASSPATH%;test.jar;
java com.syj.ClassLoaderTest
pause

执行结果
classPath1:file:/D:/DEV.WORK/works_acnt/Test/config.ini
classPath2:file:/D:/DEV.WORK/works_acnt/Test/


不难发现当使用java -jar test.jar启动程序时可以getResource一个具体文件是没有问题的但是getResource("")就会出问题,要把这个jar放

到ClassPath里面才行
可见用java -jar test.jar启动程序时程序并不知道当前这个test.jar的绝对路径

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:663747次
    • 积分:6921
    • 等级:
    • 排名:第3435名
    • 原创:81篇
    • 转载:18篇
    • 译文:0篇
    • 评论:278条
    最新评论