我创建了一个spring boot应用程序,它读取excel文件,以便在前端显示数据,因此基本上它是持久数据的来源 . 我可以从我的日食中正确运行但是当我创建一个 spring 启动jar并从命令行运行它时它会失败,因为文件不包含在jar中 .
我已经尝试了两个位置src / main / resources和/ src / main / webapp / WEB-INF / external /但在这两种情况下都没有包含文件 .
代码:
private static final String FILE1 = "\\src\\main\\webapp\\WEB-INF\\external\\file1.csv";
private static final String FILE2 = "\\src\\main\\webapp\\WEB-INF\\external\\file2.csv";
private static String currentDirectory = Paths.get(".").toAbsolutePath().toString();
private static String completeAbsolutePath = currentDirectory
.substring(0, currentDir.length() - 1)
.replace("\\", "\\\\");
reader = new CSVReader(new FileReader(completePath + FILE1))
错误:
java.io.FileNotFoundException:c:\ delete \ src \ main \ webapp \ WEB-INF \ external \ File1.csv
有人可以帮忙吗?
1 回答
你有两个问题:
您将资源放在
src
文件夹下,而不是创建指定的资源文件夹并将其放在那里 . 要做到这一点,你应该创建一个名为"resources"的文件夹与"src"同一级别右键单击该文件夹,选择"Mark Directory As -> Resources Root"您指的是具有相对路径的文件 . 这可能在eclipse中有效,但是当你将它作为jar运行时,路径会发生变化,相对路径不再正确 .
要使用此类资源,您应使用
ClassLoader
APIClassLoader.getResourceAsStream(String name)
来获取资源 .它应该类似于以下内容:
FILE1)));