2013-06-05 48 views
0

我想在我的php程序中執行jar文件。 我用這個簡單的例子測試:exec()PHP總是返回數組(大小= 0)空?

exec('java -jar "C:\wamp\www\Hello.jar" myName', $output); 
var_dump($output); 

但它總是打印

array (size=0) 
    empty 

BTW jar文件確實System.out.println("hello "+args[0]);,我在cmd中測試它,它工作正常。

請幫忙我兩天以來一直在努力解決這個問題。

+0

嘗試當你調用Java可執行 – m4t1t0

+0

使用絕對路徑,它不工作:( 我想這回聲EXEC(「WHOAMI」);並且它打印「紐約泛歐nt \système' –

+0

您可能想要檢查您的php.ini配置文件是否已禁用安全模式 – Terry

回答

0

試試這個:

exec('java -jar \"C:\wamp\www\Hello.jar" myName', $output); 

代替

exec('java -jar "C:\wamp\www\Hello.jar" myName', $output); 
+0

不,它不起作用:( –

+0

我試過這個echo exec('whoami');它打印' autorite nt \système' –

0

嘗試

exec("/path_to_java -jar C:\wamp\www\Hello.jar myName", $output); 
0
  1. 你必須逃離反斜槓:與\\
  2. 更換 \
  3. 您應該分別構建CMD和JAR字符串。 (良好的編程)
  4. 將錯誤重定向到2>&1以顯示輸出錯誤。

簡單:

$JAR = 'C:\\wamp\\www\\Hello.jar'; 
$CMD = sprintf(
    'java -Xmx32m -jar %s myName 2>&1' 
    ,escapeshellarg($JAR) 
); 
exec($CMD, $Output, $Status); 
var_dump($CMD, $Output, $Status);