我有以下JAVA程序,它已转换为JAR文件并放在与我的PHP文件相同的目录中。 所以基本上它需要PHP传递的参数并显示它
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。 所以在我的例子中它将是String“返回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 :(得分: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;
?>