我有个问题。我尝试复制文件,但出现 FileNotFound 异常。这是我的代码:
File file = new File("C:\\.DS\\tmp\\client-" + node_id + ".war");
File dir = new File("D:\\Utils\\Apache\\Tomcat\\webapps");
try {
FileUtils.copyFileToDirectory(file, dir);
} catch (Exception e) {
e.printStackTrace();
}
例外是:
java.io.FileNotFoundException: Source 'C:\.DS\tmp\client-022.war' does not exist
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1074)
at org.apache.commons.io.FileUtils.copyFileToDirectory(FileUtils.java:1013)
...
但该文件在该文件夹中。
这段代码是从Tomcat中的JSF调用的,所以可能是Tomcat目录的问题。该文件是使用 ProcessBuilder 通过外部命令在先前的函数中生成的,因此可能 Java 会尝试并行并且 ProcessBuilder 在复制完成后正在完成。
此外,在同一类的另一种方法中,此代码可以完美运行:
File file = new File("C:\\.DS\\tmp\\client-" + node_id + ".properties");
File dir = new File("C:\\.DS\\ss\\engines");
try {
FileUtils.copyFileToDirectory(file, dir);
...