Java找不到服务器上存在的文件
在我的JavaSpringWeb应用程序中,我正在创建一个图像文件。此文件将获得一个临时名称,稍后我将尝试使用以下方法重命名它:Java找不到服务器上存在的文件,java,spring,file-io,Java,Spring,File Io,在我的JavaSpringWeb应用程序中,我正在创建一个图像文件。此文件将获得一个临时名称,稍后我将尝试使用以下方法重命名它: public void rename(String productFilename){ String newProductFilename = "newfile.jpg"; File input = new File(imageDir + "/products/" + productFilename); File output = new File
public void rename(String productFilename){
String newProductFilename = "newfile.jpg";
File input = new File(imageDir + "/products/" + productFilename);
File output = new File(imageDir + "/products/" + newProductFilename);
Boolean checkRename = input.renameTo(output);
}
对于创建临时文件,我使用:
public String generate(){
String productFilename = "filename.jpg";
ImageIO.write(out, imageFileType, new File(imageDir + "/products/" + productFilename));
return productFilename;
}
imageDir
的值为:/var/images
在整个类中,imageDir变量设置为绝对路径。奇怪的是,这一切在Windows上都非常有效,但在Linux上运行时,我得到了一个FileNotFoundException
我100%确定该文件存在。关于我做错了什么有线索吗 我找到了解决办法。需要对文件名进行修剪,以便在Linux中识别。然而,这在不修剪窗口的情况下起作用。我找到了解决方案。需要对文件名进行修剪,以便在Linux中识别。然而,这在Windows中不需要修剪就可以工作。newFilename与productFilename是否不同?您似乎在创建和重命名时使用了不同的变量。由于这在Windows上有效,您是否有案例问题?我会记录写入临时文件时使用的文件名,以及重命名时使用的文件名。您还可以粘贴得到的异常吗?请查看我的编辑。generate函数正在返回重命名函数正在使用的文件名。重命名的签名看起来可疑。是否不希望公共无效重命名(字符串productFilename,字符串newProductFilename);我没有发布整个函数。newProductFilename是在重命名函数中生成的。“newFilename”与“productFilename”不同吗?您似乎在创建和重命名时使用了不同的变量。由于这在Windows上有效,您是否有案例问题?我会记录写入临时文件时使用的文件名,以及重命名时使用的文件名。您还可以粘贴得到的异常吗?请查看我的编辑。generate函数正在返回重命名函数正在使用的文件名。重命名的签名看起来可疑。是否不希望公共无效重命名(字符串productFilename,字符串newProductFilename);我没有发布整个函数。newProductFilename在重命名函数中生成。