Java项目打包成jar包后,代码中读取文件路径错误
一开始我通过下面的方式获取文件路径,对文件进行操作,本地运行是完全没有问题的!
File directory = new File(pathName);
reportPath = directory.getCanonicalPath();
String url = reportPath + "/templates/" + templateName + ".xlsx";
InputStream inputStream = new FileInputStream(url);
但是当我打包项目,部署后发现代码显示找不到文件!!!神马情况?!
经过多方的查询资料,解释如下:
当将 Java 代码打包成 JAR 文件并部署到环境中时,路径获取的方式可能会有所不同。在 JAR 文件中,文件路径不再是操作系统文件系统上的绝对或相对路径,而是相对于 JAR 文件本身的路径。
好的,找寻别的解决方式:
public class Main {
public static void main(String[] args) {
// 获取文件的输入流
InputStream inputStream = Main.class.getResourceAsStream("/templates/file.xlsx");
// ...
}
}
通过getResourceAsStream直接获取文件的流,完美解决问题!!!
最后,希望觉得有用的小伙伴们一键三连支持一下哈~~~