【发布时间】:2016-03-23 15:03:00
【问题描述】:
我尝试使用 php 的 shell_exec() 来执行一个 jar 文件。 pgp 文件在服务器上运行。
我研究了这个问题并尝试了以下方法,但到目前为止没有成功:
- 我在命令中指定了完整的 java 路径
- 我确保服务器上没有禁用 shell_exec()/exec() 功能,服务器没有在安全模式下运行
- 我将jar文件的权限改为可执行
- 我也尝试使用 exec()
- 我测试了类似 exec("ls", $out) 的命令,它运行良好
命令如下:
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文件。
【问题讨论】:
标签: php shell-exec