• 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】这种简单的文件夹

  • 相关阅读:
    Android与WebView的插件管理机制
    在mac下搭建Apacheserver
    “懒”也要有境地---大部分程序猿都在的地方,再不来就out了。
    codeforces Looksery Cup 2015 H Degenerate Matrix
    HDU 1247 Hat’s Words(字典树变形)
    SICP 习题 (1.38)解题总结
    scikit-learn:4.2. Feature extraction(特征提取,不是特征选择)
    iOS_高效开发之道
    亚马逊2014在线面试第一题
    通过AO连接多个EO并进行使用
  • 原文地址:https://www.cnblogs.com/hackxiyu/p/9168155.html
Copyright © 2020-2023  润新知