php exec()& java发送参数

时间:2012-12-16 14:56:06

标签: java php exec

我想通过php连接到java并在php中打印结果。现在我想向java发送一个参数并将其返回给php以查看它是如何工作的。我怎样才能做到这一点? 到目前为止我有这个代码:

PHP:

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

爪哇:

public class Main {
    public static void main(String[] args) {
        System.out.print(args[0]);
    }
}

结果是

Array ( )

4 个答案:

答案 0 :(得分:9)

待办事项

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

,因为

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

答案 1 :(得分:1)

你的java程序至少需要一个参数,但php代码没有给出它,所以改变你的

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

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

编辑:

当你没有指定参数时你得到Array()的原因可能是因为java发送的错误被发送到stderr,而$ output只从stdout获取数据

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果您真的想将本机Java代码集成到PHP应用程序中,PHP/Java Bridge可能能够以更好的方式解决这个问题,而不必通过exec() - java代码。

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