我尝试使用php的shell_exec()执行jar文件。 pgp文件在服务器上运行。
我研究了这个问题并尝试了以下方法但到目前为止没有成功:
命令如下:
shell_exec("/usr/lib/jvm/java-7-oracle/bin/java -jar PATH_TO_MY_JAR_FILE.jar");
我将命令复制并粘贴到shell中,运行正常。
----------------------------更新------------------ -------------------
我在调试方面取得了一些进展,并希望稍微更新一下这个问题。
我尝试使用
进行调试exec("command from above", $output, $exit_code)
echo $output;
echo $exit_code;
并做了一些修复,现在我确定php脚本已经执行但是它没有按照我想要的那样做。
因此jar文件的目的是在系统中创建一个json文件。我指定了这个json的绝对路径。
现在,在我运行php文件后,$ output显示
Array ( [0] => {"balance":"c","num":"b","is_vip":true,"name":"a"} )
当我在shell
中运行命令时,这是相同的输出$ exit_code的值是10
但我在系统中找不到json文件。
答案 0 :(得分:1)
您是否检查过服务器上是否启用了php安全模式? http://php.net/manual/en/function.shell-exec.php的文档说:
注意:当PHP以安全模式运行时,此功能被禁用。
尽管如此:文档还说,自PHP5.3以来,safe_mode已被弃用,所以希望这不会影响你的服务器。
此外,您应该检查是否允许php用户执行java二进制文件{。}}。