读书人

JAR两种资源读取形式

发布时间: 2012-12-24 10:43:14 作者: rapoo

JAR两种资源读取方式

??? 这个是前一段时间写一个考核工具和eclipse插件用到的东西,插件里面用到的资源读取方法是借用webwork的东西,考核工具里面用的是可运行jar读取文件路径的常用方法,下面就直接贴关键代码了。

??? 第一种方式:资源文件在JAR包中(webwork中的方式)

???????

???????????

/** *  * Description:读取jar包中的资源URL * @author: caoshuaibiao * @Date:  2010-7-28 下午08:29:18 * @param callingClass * @param resourceName * @return 资源url路径 * */private static URL getResource(Class callingClass, String resourceName) {URL url = Thread.currentThread().getContextClassLoader().getResource(resourceName);if (url == null) {url = MainTest.class.getClassLoader().getResource(resourceName);}if (url == null) {ClassLoader cl = callingClass.getClassLoader();if (cl != null) {url = cl.getResource(resourceName);}}if ((url == null) && (resourceName != null)&& ((resourceName.length() == 0) || (resourceName.charAt(0) != '/'))) {return getResource(callingClass, '/' + resourceName);}return url;}
假设资源文件在jar包的resources目录下,读取文件的示例代码如下

??

URL url = getResource(MainTest.class, "/resources/ type .xml");InputStreamReader in=new InputStreamReader(url.openStream())

?? 第二种,资源文件在可运行JAR相对文件夹中

???

//当前JAR所在文件夹路径String path= URLDecoder.decode(KPI.class.getProtectionDomain().getCodeSource().getLocation().getFile(), "UTF-8");//获取相对jar位置文件夹下的文件路径String fp=KPI.getMp()+"target/summary/test.xml";

?

?

?

读书人网 >编程

热点推荐