我是徐大志

有志者事竟成,破釜沉舟,百二秦关终属楚;
苦心人天不负,卧薪尝胆,两千越甲可吞吴。

Eclipse获取资源路径

一、问题:

  这几天做一个单机版的数据抓取项目,之前都加载了spring或者是maven

  使用【this.getClass().getClassLoader().getResource("main.png")).getImage()】可以获取到资源的路径

  但是现在的项目里却怎么也加载不了资源?

 

二、分析:

  (1) 获取类加载的根路径【结果:拿不到】

    File f = new File(this.getClass().getResource("/").getPath()); 

    System.out.println(f);

  (2)获取加载器路径【结果:拿不到】

     URL xmlpath = this.getClass().getClassLoader().getResource("");
            System.out.println(xmlpath);

  (3)请教同事

    原来是我使用Eclipse编辑器的时候,新建资源文件夹用的是【Folder】,而不是【Source Folder】

    最后在项目执行的时候,资源没有加载到【bin】目录下,还在外层

    要想在原来的基础上使用,必须使用【../】回上级目录再加载资源文件

 

三、总结:

  资源文件的路径加载算是一个小问题,但是在反射或者容器加载资源路径的时候,往往资源的路径是变化的

  但是通常的加载方式,都是使用类加载器来加载资源的路径

 

四、扩展:

  java非web工程加载log4j日志配置文件:

  PropertyConfigurator.configure("./" + PropertyUtil.LOG4J_CONFIG_FILE);

  注意:

    log4j和我们在类里加载路径的不同点在于,log4j加载配置文件是从【工程】下面,而不是【src / bin】目录下

    所以,文件夹新建时候可以只是新建【Folder】这种简单的文件夹

posted @ 2018-06-11 17:27  我是徐大志  阅读(352)  评论(0编辑  收藏  举报
【少年,我看你目光炯炯有神,将来一定能成大事!】