Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行jar时无法从资源文件夹读取文件_Java_Spring Boot_File_Io - Fatal编程技术网

Java 运行jar时无法从资源文件夹读取文件

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(不正确的财务名称、财务报告和财务报告) 当我试图通过类加载器从资源文件夹中读取文件时 当我启动罐子时,如何解决这个问题 谢谢你啊,好老的“我看不懂罐子

当我通过java-jar myjar.jar启动服务器时,我的程序工作正常

我得到了这个错误:

文件java.io.FileNotFoundException:

文件:\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
引用