获取当前包中的资源

最近公司要求做一个eclipse plugin,这个plugin中要有很多树,每一颗树对应着一个XML文件,可是插件这个东西和我们的web应用有很大的区别。想取得这个XML文件相当的麻烦,用ClassLoader都取不到!也因为我的Eclipse plugin不熟,因为公司需要,第一次做。最后用的是System.getProperty("user.dir")这个方法面前搞定!可是后来又觉得这样做的话,软件的质量不好,由于这样,我才找寻取路径的方法。Web应用上的就不用说了!

包路径如下:
com.hp.conf 这是放置一些XML文件的,我在这里放了一个名叫123.xml的文件。
com.hp.util 这是放置一些java文件的,我现在想取到conf目录下的123.xml文件的InputStream。

1、 System.class.getResourceAsStream("/com/hp/conf/123.xml")   要注意路径前一定得有“/”。
2、 this.getClass().getResourceAsStream("../conf/123.xml") 这个方法是从本类的当前目录开始取的。
3、 ClassLoader.getSystemResourceAsStream("com/hp/conf/123.xml") 这个就是用ClassLoader取啦。
4、 Thread.currentThread().getContextClassLoader().getResource("com/hp/conf/123.xml") 这个方法据说比较的保险

System.getProperty("user.dir") 这是获取当前工作的目录的绝对路径。

 

 

java中取得上下文路径的方法(转)

 

1.在任意的class里调用
URLDecoder.decode(this.getClass().getClassLoader().getResource("/").getPath(), "UTF-8");
将获得当前class的全路径。
如 : C:/Program Files/Apache Software Foundation/Tomcat 5.0/webapps/clientweb/WEB-INF/classes
URLDecoder.decode负责把编码还原,不然路径中就会有类似于%20%ED等的符号。

2.可以在servlet的init方法里
String path = getServletContext().getRealPath("/");
这将获取web项目的全路径
例如c:/eclipse/workspace/tree/
tree是web项目的根目录

3.request.getContextPath();
获得web根的上下文环境
如 /tree
tree是web项目的root context

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值