4

我試圖執行一個程序(從ImageMagick轉換爲具體的),其父文件夾存在於路徑上。 Ergo,當我從命令行運行convert時,它運行該命令。下面,然而,失敗:commons-exec:在系統PATH上執行程序?

String command = "convert" 
CommandLine commandLine = CommandLine.parse(command); 
commandLine.addArgument(...) 
... 
int exitValue = executor.execute(commandLine); 

如果我指定的轉換可執行文件(C:\Program files\...),那麼這個代碼工作的完整路徑。如果我不這樣做,我會得到一個異常拋出的值爲4

如何讓commons-exec識別系統路徑?

回答

7

我已經遇到過這樣的問題之前系統設置路徑不是什麼java進程正在看到。作爲一種方法來調試這一點,你可以用打印出來的java程序所認爲的PATH環境變量:

EnvironmentUtils.getProcEnvironment(); 

,這將給你一個地圖,你可以看看,如果Java可以看到路徑變量。如果它不存在,那麼下一步就是弄清楚爲什麼你看不到它。

如果有我會嘗試運行您excutor.execute命令如下:

int exitValue = executor.execute(commandLine, EnvironmentUtils.getProcEnvironment());