Springboot打包后获取jar包里的文件
ClassPathResource classPathResource = new ClassPathResource("md/markdown.css");
File file = classPathResource.getFile();
这个时候获取不到,因为
resource.getFile()
期望资源本身在文件系统上可用,即它不能嵌套在jar文件中。这就是为什么它在您运行STS中的应用程序时有效,但是一旦您构建了应用程序并从可执行jar运行它就无法工作。而不是使用getFile()
访问资源的内容,我推荐使用getInputStream()
来代替。这将允许您阅读资源的内容,无论它位于何处。
springboot作者回答:https://stackoverflow.com/questions/25869428/classpath-resource-not-found-when-running-as-jar
文件乱码
这个时候指定文件编码即可解决
IOUtils.toString(classpathResource.getInputStream(), "UTF-8");