x0710 发表于 2022-9-3 14:47

【Java】打包前后资源读取问题

有一个项目,根目录下有三个文件夹bin,lib,src
我们不讨论bin和lib,在src下面有文件夹resources,code
在resources文件夹下面是资源文件,在code下是代码。如果要读取resources文件夹下的文件title,
在打jar包之前:
用到的相对路径是"./resources/title"
在打好jar包后:
运行的时候,相对路径是"/resources/title"

所以在打包前运行的程序正常,而打包后相同的程序总是会报FileNotFoundException
上面的路径用ClassLoader装载与new File找到文件好像原理相同。
至于再详细的细节我也没有弄太懂,如果想把java程序打包成jar运行的话,那就要注意这些问题{:301_972:}
血的教训!!!!

隔壁家的王二狗 发表于 2022-9-3 15:32

在idea里面直接copy相对路径就行了 别自己打打错就有异常

arui666 发表于 2022-9-3 20:17

不是有getResource这个方法嘛 可以直接获取到的 也可以读 但是写就不好说了 我试了怎么写都提示找不到这个路径

依然小圣 发表于 2022-9-3 21:12

FileNotFoundException 就是路径问题呀,打包前也用绝对路径试试。或者你自己打印下打包后读取路径的拼接,看最终路径是个什么鬼

Vvvvvoid 发表于 2022-9-3 22:43

获取类的类加载器
之后getResoure 相对路径
页: [1]
查看完整版本: 【Java】打包前后资源读取问题