java打包后getResource出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java打包后getResource出错相关的知识,希望对你有一定的参考价值。

我的项目有三个包xx,xx.text,xx.icon
xx中是java文件,xx.text中是txt文件,icon里是些png图标

用自己写的方法打开txt文件
open(this.getClass().getResource(“text/abc.txt”).getPath)

测试的时候能够打开,但是打包之后就无法打开

声明图标也使用类似方法就没有这样的问题
new ImageIcon(this.getClass().getResource("icon/abc.png"));

求解

问题是,你想对文件有写的权限吗?打包后是不允许的.
如果你只想读取包内的一个文件,那么你可以用流的方式读取:
你的 open(); 方法的参数得改成 InputStream,如下:

....
InputStream input = this.getClass().getResourceAsStream("text/abc.txt");
open(input);
....

如果非要能写进去,就得想其它办法了
参考技术A 你还是写错了 参考技术B 为什么不用Scanner打开txt呢... 参考技术C 报的什么错呢,找不到文件?你调试一下,或者加个打印语句看看他找到的是什么路径。

以上是关于java打包后getResource出错的主要内容,如果未能解决你的问题,请参考以下文章

java读取配置文件的推荐方法getResourcegetResourceAsStream

Java getResource两种使用方式

Class类getResource方法获取文件路径

Class.getResources()和classLoader.getResources()区别

Redis ConnectionException

java 程序打包为jar发布后,读取配置文件路径出错 ,怎样获取配置文件路径?