【发布时间】: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