php exec()&;java发送参数

php exec()&;java发送参数,java,php,exec,Java,Php,Exec,我想通过php连接到java,并用php打印结果。现在我想向java发送一个参数,并将其返回给php,以了解它是如何工作的。我该怎么做? 到目前为止,我有以下代码: PHP: 爪哇: 结果是 Array ( ) 考虑使用RESTful设计。将Java程序放在URL处,并使用PHP*file\u get\u contents()从URL读取。Java程序写入浏览器输出流的任何内容都将在该函数加载的PHP变量中可见。考虑使用RESTful设计。将Java程序放在URL处,并使用PHP*file\u

我想通过php连接到java,并用php打印结果。现在我想向java发送一个参数,并将其返回给php,以了解它是如何工作的。我该怎么做? 到目前为止,我有以下代码:

PHP:

爪哇:

结果是

Array ( )

考虑使用RESTful设计。将Java程序放在URL处,并使用PHP*file\u get\u contents()从URL读取。Java程序写入浏览器输出流的任何内容都将在该函数加载的PHP变量中可见。

考虑使用RESTful设计。将Java程序放在URL处,并使用PHP*file\u get\u contents()从URL读取。Java程序写入浏览器输出流的任何内容都将在该函数加载的PHP变量中可见。

您的Java程序至少需要一个参数,但PHP代码没有给出,因此请更改

exec('java jar/name.jar', $output);

编辑:


在没有指定参数的情况下得到Array()的原因可能是因为java发送的错误被发送到stderr,而$output只从stdout获取数据。java程序至少需要一个参数,但php代码没有给出,所以请更改

exec('java jar/name.jar', $output);

编辑:


在没有指定参数的情况下得到Array()的原因可能是因为java发送的错误被发送到了stderr,而$output只从stdout获取数据。如果您真的想将本机java代码集成到PHP应用程序中,则可能比通过exec()更好地解决这个问题-正在编译java代码


不过,为Java功能创建一个小型服务是首选方法,然后通过一个小型的基于web的API(最好使用JSON作为交换格式)公开这些功能。

如果您真的想将本机Java代码集成到PHP应用程序中,与必须执行exec()-ing java代码相比,可以更好地解决这个问题

但是,为Java功能创建一个小型服务是首选方法,然后通过一个小型的基于web的API(最好使用JSON作为交换格式)公开这些功能。

exec("/full/path/to/java -jar jar/name.jar 2>&1", $output);
print_r($output);
因为

  • 您的PHP环境可能没有在路径中定义java可执行文件(而且也不应该)
  • jar文件使用
    java-jar执行
  • 您希望
    2>&1
    能够在输出中看到错误消息(从stderr重定向到stdout)
Do

因为

  • 您的PHP环境可能没有在路径中定义java可执行文件(而且也不应该)
  • jar文件使用
    java-jar执行
  • 您希望
    2>&1
    能够在输出中看到错误消息(从stderr重定向到stdout)

我照你说的做了,但是数组也是空的。@bw2801你确定java jar/name.jar部分是正确的吗?这意味着相对于php文件,文件名.jar位于map jar中。我测试它的方法是:使用代码在同一目录中创建test.php和Main.java。运行javac Main.java并运行php test.php(test.php had exec('java Main some_value',$output);文件夹“jar”与php文件位于同一目录中。您可以尝试使用php-a,这将以交互模式打开php,然后键入exec('java jar/name.jar some_value',$output);也许它会给你更多的信息。我按照你说的做了,但是数组也是空的。@bw2801你确定java jar/name.jar部分是正确的吗?这意味着相对于你的php文件,file name.jar在map jar中。我测试它的方式是:用你的代码在同一个目录中创建test.php和Main.java。运行javac Main。java并运行php test.php(test.php had exec('java Main some_value',$output);文件夹“jar”与php文件位于同一目录中。您可以尝试使用php-a,这将以交互模式打开php,然后键入exec('java jar/name.jar some_value',$output);也许它会给你更多的信息第三点没有它非常有用一些程序不$输出任何东西,不知道为什么!@AbhishekK因为它在stderr上打印错误,通常只捕获stdout,在正常输出的地方第三点没有它非常有用一些程序不$输出任何东西,不知道为什么!@AbhishekK,因为它在stderr上打印错误,通常只捕获stdout,正常的输出就在这里
exec('java jar/name.jar some_value', $output);
exec("/full/path/to/java -jar jar/name.jar 2>&1", $output);
print_r($output);