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

原创 2007年09月24日 13:25:00


前几天在写一个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的绝对路径

Web基础之Class与ClassLoader的getResource区别

在Web开发中经常要加载项目下的各种资源,有一种方法是用ClassLoader或者Class类提供的getResource来加载。本文将从代码上来分析两者的区别...
  • sgls652709
  • sgls652709
  • 2016年11月06日 18:26
  • 739

class.getResource()的用法

 class.getResource()的用法用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大常最经常用的,就是用JAVA的File类,如要取得c:/tes...
  • lcj8
  • lcj8
  • 2008年12月12日 11:30
  • 52519

Java文件路径(getResource)

getResourceAsStream ()返回的是inputstream getResource()返回:URL Class.getResource("")    返回的是当前Class这个类所...
  • ak913
  • ak913
  • 2012年03月27日 15:16
  • 33563

java文件路径问题及getResource和getClassLoader().getResource的区别

我们经常在java的io操作中读取文件,先看一个场景: 这样是读不到这个file文件的,会发生filenotfoundexception 如果我把文件放到了src/main/java下呢,还是会发...
  • u012572955
  • u012572955
  • 2016年10月21日 11:02
  • 3348

Java 资源文件路径详解(getResource)

获取资源文件的方法说明:        getResourceAsStream ()返回的是inputstream        getResource()返回:URL        Class...
  • wenhuiqiao
  • wenhuiqiao
  • 2013年01月09日 15:26
  • 36995

Class.getResource与Class.getClassLoader.getResource归纳整理

这两个getResource()是使用当前ClassLoader加载资源(即资源在 Class path中),这样资源和class直接打在jar包中,避免文件路径问题. 两者不同是Class的get...
  • qiuzhi__ke
  • qiuzhi__ke
  • 2015年08月18日 00:15
  • 1772

class.getResource()用法

最近由于修改别人的代码,有一些数据库连接的参数直接写到代码里,这样不适用于维护,所以要做一下分离,很简单,即建一个数据库可连接的配置文件XXX_properties, 通过读取该配置文件然后建立连接...
  • u013341688
  • u013341688
  • 2016年03月16日 15:56
  • 1831

使用getClassLoader().getResource()需注意的问题

在Java WEB项目编程时,往往通过classLoader获取Jar包的物理路径,但是可能会存在2个问题:URL地址解析错误,不能正确获取Jar文件路径。 1、URL地址解析错误 见下例,通...
  • hongweigg
  • hongweigg
  • 2017年04月05日 16:20
  • 1524

Class.getResource()怎么使用

URL url=Class.forName("game3.PicPanel").getResource("0.JPEG"); Class.forName( String className )返回与带...
  • rikgong
  • rikgong
  • 2010年09月19日 19:00
  • 3297

Java class.getClassLoader().getResource("")获取资源路径

在开发中经常需要获取资源文件路径,例如读写配置文件等。Java也提供很多方法来获取这些路径,下面就几种常用到的作一下讨论区分: 1、xxx.class.getClassLoader().getRes...
  • ttx_laughing
  • ttx_laughing
  • 2016年10月21日 11:16
  • 2163
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用class.getClassLoader().getResource("")的注意事项
举报原因:
原因补充:

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