背景
SpringBoot (2.5.4版本)项目调用一个本地 jar 包的方法,需要项目 resources 下的文件路径。文件存放在 resources 下。
试错流程
1 、原始代码:
先用 ClassLoader.getSystemResource("文件名")
,本地运行正常。但是打成 jar 包后报错空指针。
2 、 第一次修改:
看到网上大部分说用this.getClass().getClassLoader().getResource()
,还是不行,这俩原理一样。
3 、第二次修改:
还有一种方法是利用文件流获取文件,this.getClass().getClassLoader().getResourceAsStream()
,但是这是直接获取文件,需要是文件路径,不行。
4 、最后采用:
利用String filePath = System.getProperty("user.dir") + "\\文件名"
,获取jar包的路径,加上文件名,就得到文件地址,但是需要把文件放到和jar包同一文件目录下。
小点
System.getProperty(“user.dir”) + “\文件名"中的“\”双斜杠是在windows环境中,要是在linux环境中需要改成”/"。
(目前还未找到不将文件外置的方法,有解决办法希望大佬们不吝赐教!)