一、坑:
今天在第一次打包一个springboot开发的项目,将项目打包成jar包,但是遇到了一个坑。项目在eclipse上开发测试的时候,跑的很顺利,但是当项目被打成jar包以后(一个可以直接运行的jar包,包中包含了项目的所有依赖),启动jar包以后就会出现读不到resource下的文件的情况。
以下是我的读取文件的代码:
InputStream systemResourceAsStream = ClassLoader.getSystemResourceAsStream("tree.json");
if (systemResourceAsStream == null) {
throw new Exception("read file tree.json failed.");
}
result = IOUtils.toString(systemResourceAsStream);
这种方式读取文件在测试的时候是没有问题的,但是打包以后就会出现文件读不到的问题。
二、解决:
InputStream input = new ClassPathResource("tree.json").getInputStream();
if (input == null) {
throw new Exception("read file tree.json failed.");
}
result = IOUtils.toString(input);
三、分析: