簡體   English   中英

exec()php總是返回數組(size = 0)為空嗎?

[英]exec() php always returning array (size=0) empty?

我正在嘗試在我的php程序中執行jar文件。 我正在用這個簡單的例子進行測試:

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

但它總是打印

array (size=0)
  empty

順便說一句,jar文件執行System.out.println("hello "+args[0]); 我正在cmd中對其進行測試,並且工作正常。

自兩天以來,請幫助我解決這個問題。

嘗試這個:

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

代替

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

嘗試

exec("/path_to_java -jar C:\wamp\www\Hello.jar myName", $output); 
  1. 您必須轉義反斜杠:用\\\\替換\\
  2. 您應該分別構建CMD和JAR字符串。 (好的編程)
  3. 使用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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM