用php exec函数无法执行java程序

jos*_*ilo 5 php java exec

我正在尝试使用php exec函数执行java程序来签署pdf文件,但是不起作用:

exec('java -jar PROGRAM.jar -n -t ORIGIN.pdf -o DESTINY.pdf -s CERTIFICATE -p PASSWORD', $output, $return);
Run Code Online (Sandbox Code Playgroud)

当我执行它时,$ output是一个空数组,$ return是一个int(1),但如果我运行:

java -jar PROGRAM.jar -n -t ORIGIN.pdf -o DESTINY.pdf -s CERTIFICATE -p PASSWORD
Run Code Online (Sandbox Code Playgroud)

在命令行中它可以工作.谁能帮我?

谢谢.

jos*_*ilo 1

最后我可以解决这个问题。

解决办法是:

exec('java -Djava.awt.headless=true -jar PROGRAM.jar -n -t ORIGIN.pdf -o DESTINY.pdf -s CERTIFICATE -p PASSWORD', $output, $return);
Run Code Online (Sandbox Code Playgroud)

添加该-Djava.awt.headless=true选项是为了告诉 java 这是一个间接调用,因此它无法控制键盘、鼠标等。