2017-12-03 22 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로 값을 반환됩니다 어딘가에 읽었다. 제 경우에는 "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

첫 번째 예제는 문서 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.

기본적으로 우리는 PHP에서 JAR 파일을 실행하기 위해 2 개의 명령문을 사용할 수 있습니다 : 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; 

?>