【问题标题】:How to capture return value from JAR in PHP and display it如何在 PHP 中从 JAR 中捕获返回值并显示它
【发布时间】:2017-12-03 07:20:09
【问题描述】:

我有以下已转换为 JAR 文件并放置在与我的 PHP 文件相同的目录中的 JAVA 程序。 所以基本上它需要一个 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 "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 中使用它并继续其他执行部分。

【问题讨论】:

  • 看看文档php.net/manual/en/function.shell-exec.php 中的第一个示例。 $output = shell_exec("java -jar TEST.jar $arg1");
  • @RolandStarke 谢谢伙计,它的工作文件。这适用于单个返回值但是如果 JAR 文件返回多个值那我应该如何使用它呢?

标签: php jar parameter-passing return-value shell-exec


【解决方案1】:

感谢@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;

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 2014-01-23
    • 2014-09-19
    相关资源
    最近更新 更多