![](/img/trans.png)
[英]Compiling and executing using exec in Java fails using command that works from the command line
[英]java command fails in node js child process exec but succeeds on command line
我正在嘗試使用節點 JS 子進程 exec 包運行以下命令:
java -Duser.dir=/app/system/controllers/ -jar -Xmx2048m -XX:-UseGCOverheadLimit "/app/system/controllers/validation/dist/Validation.jar" "load" "ATC" "/app/system/controllers/validation/test files/uploadedfile1.xlsx" "/app/system/controllers/validation/test files/uploadedfile2.xlsx"
這是我如何稱呼它:
var exec = require('child_process').execSync;
var child = exec('java -Duser.dir=/app/system/controllers/ -jar -Xmx2048m -XX:-UseGCOverheadLimit "/app/system/controllers/validation/dist/Validation.jar" "load" "ATC" "/app/system/controllers/validation/test files/uploadedfile1.xlsx" "/app/system/controllers/validation/test files/uploadedfile2.xlsx"', function (error, stdout, stderr){
if(error){
console.log("The error is: ",error);
}
});
出於某種原因,當我這樣稱呼它時,會出現以下錯誤:
Error: Command failed: java -Duser.dir=/app/system/controllers/ -jar -Xmx2048m -XX:-UseGCOverheadLimit "/app/system/controllers/validation/dist/Validation.jar" "load" "ATC" "/app/system/controllers/validation/test files/uploadedfile1.xlsx" "/app/system/controllers/validation/test files/uploadedfile2.xlsx"
Exception in thread "main" org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException: No valid entries or contents found, this is not a valid OOXML (Office Open XML) file
at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:290)
at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:774)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:344)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:285)
但是,當我通過命令行運行它時,只需復制和粘貼它,它就可以正常工作。 為什么會發生這種情況是否有一個簡單的解釋? 我在子進程調用中有什么問題嗎?
我知道自從提出這個問題以來已經兩年了。 不過最近我也遇到了同樣的問題,發現如果在projects主目錄下創建shell文件,可以用spawn函數調用。 您只需要提供至少一個參數即可使其起作用。
即使未設置 shell 腳本來處理參數也是如此。 否則,它會出於某種原因將 ENOENT 放在命令的末尾。 我目前在移動設備上,但稍后將對其進行編輯以提供代碼示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.