我想通过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 ( )
答案 0 :(得分:9)
待办事项
exec("/full/path/to/java -jar jar/name.jar 2>&1", $output);
print_r($output);
,因为
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作为交换格式)公开这些功能。