Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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_File_Fileutils - Fatal编程技术网

Java-将文件从JAR保存到磁盘

Java-将文件从JAR保存到磁盘,java,file,fileutils,Java,File,Fileutils,我试图将打包在JAR中的YAML格式的文件保存到用户的磁盘上 该文件名为config.yml,直接位于项目的一个源文件夹下。我可以确认该文件是用WinRAR打包在JAR中的 我使用以下代码从JAR获取文件: File file = new File(this.getClassLoader().getResource("config.yml").getPath()); 我正在使用此代码将文件复制到一个目录: FileUtils.copyFileToDirectory(file, this.get

我试图将打包在JAR中的YAML格式的文件保存到用户的磁盘上

该文件名为config.yml,直接位于项目的一个源文件夹下。我可以确认该文件是用WinRAR打包在JAR中的

我使用以下代码从JAR获取文件:

File file = new File(this.getClassLoader().getResource("config.yml").getPath());
我正在使用此代码将文件复制到一个目录:

FileUtils.copyFileToDirectory(file, this.getDataFolder());
getDataFolder()方法由可靠的第三方API实现。 但是,当我使用使用同一getDataFolder()文件实例和路径“config.yml”定义的文件实例时:

控制台记录FileNotFoundException。 堆栈跟踪中给出的文件路径如下:“文件:\C:\Users\Evan\Desk
top\Test%20Server\plugins\lottocrates-1.0.jar!\config.yml“这似乎是正确的。我尝试用运行提示符打开文件,我可以用它打开JAR,但不能打开config.yml文件。

文件:\C:\Users\Evan\Desk top\Test%20Server\plugins\lottocrates-1.0.JAR\config.yml
试图从
lottocrates-1.0.jar
中引用
config.yml
作为
文件,这显然是错误的。This
File File=new文件(This.getClassLoader().getResource(“config.yml”).getPath())是您的第一个问题。使用
Class#getResourceAsStream
InputStream
复制到资源中,将内容复制到
文件
中,然后加载文件,不,这不是您要做的。谢谢!工作得很好。我最终使用CommonsIO使它变得相当无痛。(FileUtils#copyInputStreamToFile)
new File(this.getDataFolder(), "config.yml")