Java 运行jar时无法从资源文件夹读取文件
当我通过java-jar myjar.jar启动服务器时,我的程序工作正常 我得到了这个错误: 文件java.io.FileNotFoundException:Java 运行jar时无法从资源文件夹读取文件,java,spring-boot,file,io,Java,Spring Boot,File,Io,当我通过java-jar myjar.jar启动服务器时,我的程序工作正常 我得到了这个错误: 文件java.io.FileNotFoundException: 文件:\D:\projets\dev\filegenerator\target\myjar-0.0.1-SNAPSHOT.jar\BOOT-INF\classes\reports.csv(不正确的财务名称、财务报告和财务报告) 当我试图通过类加载器从资源文件夹中读取文件时 当我启动罐子时,如何解决这个问题 谢谢你啊,好老的“我看不懂罐子
文件:\D:\projets\dev\filegenerator\target\myjar-0.0.1-SNAPSHOT.jar\BOOT-INF\classes\reports.csv(不正确的财务名称、财务报告和财务报告)
当我试图通过类加载器从资源文件夹中读取文件时
当我启动罐子时,如何解决这个问题
谢谢你啊,好老的“我看不懂罐子里的文件”问题。基本上,Jar只是一个zip文件,所以如果你试着像普通文件一样读取其中包含的一个文件,它就是一个文件,因为它不再是一个普通的文件了——它只是一个由字节组成的数据包序列和一堆其他的数据包字节。相反,您应该根据需要使用
Class#getResource
(或Class#getResourceAsStream
)我这样做:新建文件(getClass().getClassLoader().getResource(文件名)
我应该怎么做才能在jar中工作?你不能使用文件,它只是不起作用,没有意义。你试图访问的不是文件,而是包含在一个更大的二进制文件中的二进制流。就我个人而言,除非你处理一些奇怪的类加载环境,getClass().getResource(fileName)
应该足以为您获取资源的URL
引用