2017-12-03 329 views
1

我有以下JAVA程序已被转换为JAR文件并放在与我的PHP文件相同的目录中。 所以基本上它需要通过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"); 

    } 
} 

下面是我的PHP代码将执行JAR文件和所需的1个参数传递给JAR。

<?php 

$arg1 = "My_INPUT_PARAMETER"; 

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

?> 

我在某处读到Sysout(System.out.println)中放置的任何内容都将被视为输出参数或PHP返回值。 所以在我的情况下,它将是字符串“返回到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感谢队友,它的工作文件。这适用于单个返回值但是,如果JAR文件返回多个值,那我该如何使用它呢? –

回答

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; 

?> 
相关问题