我想從我的java代碼運行一個.exe文件,並將幾個參數/選項傳遞給.exe文件。從java執行.exe文件
所以基本上,我做了以下內容:
BufferedReader br = null;
OutputResult out = new OutputResult();
String commandStr= "cmd.exe /C A-B/xyz.exe health -U admin -P admin";
Process p = Runtime.getRuntime().exec(commandStr);
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
out.add(line.trim());
}
注:此處A-B是其中xyz.exe所在的目錄的名稱。
但是當變量out被打印時,它實際上表明它什麼也沒有。
因此,而不是上面的代碼我它修改爲以下:
BufferedReader bre = null;
OutputResult oute = new OutputResult();
String commandStr= "cmd.exe /C A-B/xyz.exe health -U admin -P admin";
Process p = Runtime.getRuntime().exec(commandStr);
bre = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String line;
while ((line = bre.readLine()) != null) {
oute.add(line.trim());
}
現在,這裏被印刷在可變歐特時,它顯示該消息,
「AB」沒有被識別爲一個內部或外部命令,可操作程序或批處理文件。
所以我的問題是,爲什麼A-B不被視爲實際的.exe文件所在的目錄。
如果有人知道這個問題,請解決該錯誤。
您可以直接調用該程序。不需要添加'cmd.exe' – CSK
這可能只是另一種做同樣事情的方法,但這裏的問題是,爲什麼AB不被當作一個目錄!......並且,它不應該是這樣的。相反,代碼應該進入目錄並執行exe文件。 – gautam