2017-12-03 208 views
1

我有以下JAVA程序已被轉換爲JAR文件並放在與我的PHP文件相同的目錄中。 所以基本上它需要通過PHP傳遞參數,並顯示如何從PHP中的JAR捕獲返回值並顯示它

public class Test { 
    public static void main(String[] args) throws Exception { 
     //Takes the value passed from the PHP 
     String Name = (new String(args[0])).toString(); 
     //This will be treated as Output Parameter which will be returned to PHP 
     System.out.println("Return to PHP"); 

    } 
} 

下面是我的PHP代碼將執行JAR文件和所需的1個參數傳遞給JAR。

<?php 

$arg1 = "My_INPUT_PARAMETER"; 

shell_exec("java -jar TEST.jar $arg1"); 
echo "Done"; 

?> 

我在某處讀到Sysout(System.out.println)中放置的任何內容都將被視爲輸出參數或PHP返回值。 所以在我的情況下,它將是字符串「返回到PHP」。

但我無法獲得PHP的價值並顯示它。

我試着在exec語句中放置一個輸出值,但它不起作用。 我嘗試了下面的代碼,但它拋出我的錯誤。

<?php 

$arg1 = "My_INPUT_PARAMETER"; 
$output = ''; 

shell_exec("java -jar TEST.jar $arg1", $output); 
echo "Done"; 
echo $output; 

?> 

誰能幫助我在這裏,我怎樣才能從PHP得到PHP或輸出參數返回值,並顯示它或我的PHP中使用它,並繼續與其他執行部分。

+0

看看藝術第一個例子在文檔http://php.net/manual/en/function.shell-exec.php。 '$ output = shell_exec(「java -jar TEST.jar $ arg1」);' –

+0

@RolandStarke感謝隊友,它的工作文件。這適用於單個返回值但是,如果JAR文件返回多個值,那我該如何使用它呢? –

回答

0

謝謝@Roland Starke。

所以基本上我們可以用2條語句從PHP運行JAR文件: EXEC和SHELL_EXEC。

EXEC將保存來自JAR文件的所有返回值,我們可以使用它作爲數組並顯示所需的輸出參數。

SHELL_EXEC將保存所有的輸出參數,它將一次顯示全部。

<?php 

$arg1 = "Multi Return"; 

exec("java -jar TEST.jar $arg1",$output); 

echo $output[0]."<br/>"; 

echo $output[1]; 

echo "-------------------------------"; 

$shell_out = shell_exec("java -jar TEST.jar $arg1"); 

echo $shell_out; 

?> 
相關問題