您的位置:首页 > 其它

IDEA maven打成jar包后使用ClassLoader获取不到资源文件

2017-06-10 15:05 417 查看
一般在IDEA中调试maven项目的时候,获取资源可以通过以下方式来得到url或path,然后建立File对象,但如果要把maven项目打成 jar包之后再使用这种方式获取相应的资源,会报错。

报错的加载方法:

XXX.calss.getResource(path)
XXX.calss.getClassLoader().getResource(path)
//报错
//java.io.FileNotFoundException: file:\E:\Workspace\weather\target\weather-1.0-SNAPSHOT.jar!\com\cx\weather\citiesInside.json (文件名、目录名或卷标语法不正确。)


正确的加载方法:

XXX.class.getResourceAsStream(path)
XXX.calss.getClassLoader().getResourceAsStream(path)


经验:

在jar文件中查找资源和在文件系统中查找资源的方式是不一样的,尽量使用Stream流的方式操作资源文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  idea classloader