我是一名学习计算机工程的学生。
今天,我从命令行运行了一个可运行的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文件后获得输出?
先谢谢你的回答,对不起我的英语不好。如果您不理解我的问题,请发表评论。
答案 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);
?>