2017-12-03 18 views
1

JARファイルに変換され、PHPファイルと同じディレクトリに置かれた次のJAVAプログラムがあります。 だから、基本的には、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"); 

    } 
} 

以下のJARファイルを実行し、JARに必要な1つのパラメータを渡します、私のPHPコードで表示します。

<?php 

$arg1 = "My_INPUT_PARAMETER"; 

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

?> 

は私が今までにSYSOUT(のSystem.out.println)に配置されたものを出力パラメータとして扱われるか、PHPに値を返すことになることをどこかで読みました。 私の場合、それはString "Return to 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

最初の例は、doc http://php.net/manual/en/function.shell-exec.phpでご覧ください。 '$ output = shell_exec(" java -jar TEST.jar $ arg1 ");' –

+0

@RolandStarke Thanks mate、その作業ファイルです。これは単一の戻り値に対してうまく動作しますが、JARファイルが複数の値を返している場合はどうすればよいでしょうか? –

答えて

0

ありがとう@Roland Starke。

基本的に2つのステートメントを使用してPHPからJARファイルを実行することができます: EXECおよびSHELL_EXEC。

EXECはJARファイルからのすべての戻り値を保持し、Arrayとして使用して必要な出力パラメータを表示できます。

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; 

?> 
関連する問題