Java-将文件从JAR保存到磁盘
我试图将打包在JAR中的YAML格式的文件保存到用户的磁盘上 该文件名为config.yml,直接位于项目的一个源文件夹下。我可以确认该文件是用WinRAR打包在JAR中的 我使用以下代码从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
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
作为文件,这显然是错误的。ThisFile File=new文件(This.getClassLoader().getResource(“config.yml”).getPath())代码>是您的第一个问题。使用Class#getResourceAsStream
将InputStream
复制到资源中,将内容复制到文件
中,然后加载文件,不,这不是您要做的。谢谢!工作得很好。我最终使用CommonsIO使它变得相当无痛。(FileUtils#copyInputStreamToFile)
new File(this.getDataFolder(), "config.yml")