我尝试从 php 文件运行一个 jar,如下所示:
exec("java -jar /home/florinbuda/NetBeansProjects/monkey1/dist/monkey1.jar", $result);
print_r($result);
如果我从命令行运行它,它可以工作,例如:
$ php runner.php
但是如果我尝试通过http-localhost-server/runner加载它,它不起作用.php页面只是永远加载而不会给出任何错误。
在.jar文件中,我现在添加了一个简单的测试,如果 jar 甚至开始工作
public static void main(String[] args) {
new File("/home/florinbuda/Desktop/xxx").mkdir();
正如你可以猜到的 - 当我调用 http-localhost-server/runner 时.php jar 甚至没有开始执行......
这是权利问题? 你有什么建议?
是的,这是权限问题。
您应该chmod.jar文件的父文件夹。
chmod 755 -R /home/florinbuda/NetBeansProjects/monkey1/dist/
编辑:然后你的脚本应该看起来像这样:
exec("PATH_TO/java -jar /home/florinbuda/NetBeansProjects/monkey1/dist/monkey1.jar");
bash 中的环境变量在 exec() 中并不相同。至少使用 java bin 的完整路径。您也可以尝试只运行/path/to/java 以查看正常输出是否正常工作。