博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Eclipse获取资源路径
阅读量:6526 次
发布时间:2019-06-24

本文共 893 字,大约阅读时间需要 2 分钟。

一、问题:

  这几天做一个单机版的数据抓取项目,之前都加载了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】这种简单的文件夹

转载于:https://www.cnblogs.com/hackxiyu/p/9168155.html

你可能感兴趣的文章
iOS.ReactNative-3-about-viewmanager-uimanager-and-bridgemodule
查看>>
透视校正插值
查看>>
【转载】WinCE6.0 Camera驱动源码分析(二)
查看>>
Cobertura代码覆盖率测试
查看>>
【selenium学习笔记一】python + selenium定位页面元素的办法。
查看>>
Linux禁止ping
查看>>
【Matplotlib】 标注一些点
查看>>
[AX]乐观并发控制Optimistic Concurrency Control
查看>>
自定义类加载器
查看>>
MySQL数据库事务各隔离级别加锁情况--Repeatable Read && MVCC(转)
查看>>
C++构造函数例程
查看>>
把某一列值转换为逗号分隔字符串
查看>>
DLL,DML,DCL,TCL in Oracle
查看>>
android之存储篇_存储方式总览
查看>>
SSE指令集学习:Compiler Intrinsic
查看>>
两种attach to process的方法
查看>>
WCF如何使用X509证书(安装和错误)(二)
查看>>
Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
查看>>
iOS中--NSArray调用方法详解 (李洪强)
查看>>
java异步操作实例
查看>>