2016-07-08 65 views
7

我嘗試使用exec來運行PHP從一個.jar應用:PHP:「Java」作爲不被識別爲一個內部或外部命令

exec('java -jar parser.jar $inputstring 2>&1', $output); 

我可以得到它的CMD運行,和java -version返回,所以我安裝了java。看起來這是一個路徑問題,但我正處於智慧結局之中。

我試過指定完整路徑,添加C:\ Program Files文件(x86)\ Java \ jdk1.8.0_91 \ bin;到系統變量,使用shell_exec,無濟於事。我犯了同樣的錯誤。

任何幫助將不勝感激。

+3

顯示如何添加的完整路徑。那裏有空間。如果您沒有引用路徑,例如'shell_exec('「C:\ Program files \ ....」)',那麼你將試圖運行一個名爲'c:\ program.exe'的程序,它的參數是'files \ ....' –

+0

我有:shell_exec(''C:\ Program Files(x86)\ Java \ jdk1.8.0_91 \ bin \ java.exe「-jar parser.jar $ inputstring 2> &1'); 如果我沒有2>&1它是空格,有了它,我得到了相同的'java'無法識別的錯誤 – Anda

+0

2>&1將stderr重定向到stdout,這就是爲什麼你會收到錯誤信息。shell_exec只返回stdout,所以你永遠不會看到錯誤信息。 –

回答

0

使用此....你

exec('java -jar parser.jar '.$inputstring.'2>&1', $output); 
or 
shell_exec("java -jar parser.jar $inputstring 2>&1 $output"); 
or 
string exec ('java -jar parser.jar' [, array &$output [, int &$return_var ]]) 
相關問題