这个是前一段时间写一个考核工具和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";