码迷,mamicode.com
首页 > 编程语言 > 详细

Jar包内读取配置文件

时间:2015-03-05 06:57:52      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:jar包   spring   相对路径   

1. 获取Jar包的相对路径

    关于此话题,网上众说纷纭。经尝试,下面的方法是OK的。

    1. xxx.class.getResource("filename")

    这里的filename是基于xxx的class文件的相对路径。如果filename写“”,返回.class文件的路径。

    2. xxx.class.getResource("/filename")

    这里的filename是不依赖于xxx的绝对路径的,也就是以jar包所在目录为相对路径。如果参数写的是“/”,返回null。

    无论是1,还是2,调用.getFile()获得的路径名称,(一般里面都有个感叹号,)以参数传入File类似的构造方法都是无效的,比如传送给spring的ClassPathXmlApplicationContext。如果想读取,需要使用getResourceAsStream,绕过File,以流的方式读取。(URI的方式没有尝试)

    不要直接调用Classloader的getResource方法,不论是从哪个类里面getClassLoader得到的。

   

2. ClassPathXmlApplicationContext调用的时候报告找不到文件

    如果xml文件成功打到jar包里面,肯定是在classpath中的。解决找不到文件的方法是解压jar包,查看xml文件在jar包中的组织方式,同时构造函数的参数不要以“/”开头,应该使用相对路径。

本文出自 “新青年” 博客,请务必保留此出处http://luckybins.blog.51cto.com/786164/1617431

Jar包内读取配置文件

标签:jar包   spring   相对路径   

原文地址:http://luckybins.blog.51cto.com/786164/1617431

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!