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