Java函数moveFile使用本地移动命令将输出报告文件移至就绪目录。它工作得很好,但现在它开始抛出以下磁盘空间异常。但是当我检查磁盘空间时,目录中有很多可用的sace,并且我也进行了清理。我试图重新运行它,但仍然收到以下错误。不知道是什么问题。本地移动命令 - java函数
java.io.IOException: Cannot run program "mv": error=12, Not enough space
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:431)
at java.lang.Runtime.exec(Runtime.java:328)
at powertel.usageExtract.ctfCompactExtract.moveFile(ctfCompactExtract.java:507)
at powertel.usageExtract.ctfCompactExtract.run(ctfCompactExtract.java:1189)
Caused by: java.io.IOException: error=12, Not enough space
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
at java.lang.ProcessImpl.start(ProcessImpl.java:65)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
私人INT moveFile(INT通过MoveTo){
字符串RUNCMD = “”; 进程p = null; int extVal = 0;
if (moveto == 1) {
runCmd = "mv "+ outfile + " " + localbaseDir+"/ctf/ready/";
}
else {
runCmd = "mv "+ outfile + " " + localbaseDir+"/ctf/error/";
}
try {
Runtime r = Runtime.getRuntime();
p = r.exec(runCmd);
p.waitFor();
extVal = p.exitValue();
log.debug("Process exit value: " + extVal);
}
catch (IOException e) {
extVal = 1;
log.error("IO Exception - "+ e.getMessage());
e.printStackTrace();
}
catch (InterruptedException e1) {
extVal = 1;
log.error("Interrupted Exception - "+e1.getMessage());
}
return extVal;
}
有没有在机器上的ulimit设置,不知道有没有什么帮助。什么是文件大小? 另外声明文件路径分隔符的系统属性非常有用,您可能需要考虑这一点。 – r0ast3d
在相同的文件系统(安装点)上是outfile和localbaseDir? –
准备就绪,错误目录位于相同的nfs文件系统中。输出目录在设置为/ nan/out目录的环境变量$ CUSTOM_OUT中定义。在java程序中,它被检索并存储在outfile公共变量中。我将CUSTOM_OUT变量更改为位于不同文件系统上的主目录,创建了所需的目录并运行它,但仍得到相同的错误。 – Arav