如何在PHP上从runnable jar获取输出

时间:2014-10-12 16:20:40

标签: java php web-services

我是一名学习计算机工程的学生。

今天,我从命令行运行了一个可运行的jar文件。

runnable jar文件只包含5行代码,如下所示。

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

我可以看到" Hello World"从命令行。

但是当我从PHP运行相同的runnable jar文件时,我只获得了空输出。

这是来自php的代码

<?php
    echo shell_exec("java -jar /Users/Test/Desktop/test.jar");
?>

如何在PHP上运行jar文件后获得输出?

先谢谢你的回答,对不起我的英语不好。如果您不理解我的问题,请发表评论。

2 个答案:

答案 0 :(得分:2)

您可以将jar的输出重定向到文本文件中,如下文所示:

How Can I Pipe the Java Console Output to File Without Java Web Start?

所以,例如

java -jar /Users/Test/Desktop/test.jar >file.txt  2>&1

然后您可以通过调用:

来使用忙等待,以查看是否创建了文件
while (! file_exists ( "/Users/Test/Desktop/file.txt" ) ){
  //do nothing
}
//now you can access the output of the file

这应该适用于您的用例,但您仍然应该重新考虑您的应用程序设计,因为在生产环境中这不会扩展。

干杯

答案 1 :(得分:2)

您必须将您的Jar文件放在WWW文件夹中,您将获得输出。

<?php
    exec('java -jar search.jar -query "find my dog"', $output);
    print_r($output);

?>