无法用php exec函数执行java程序 [英] Can't execute java program with php exec function
本文介绍了无法用php exec函数执行java程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用php exec函数执行java程序来签署pdf文件但不起作用:
I'm trying to execute a java program to sign a pdf file with php exec function but doesn't work:
exec('java -jar PROGRAM.jar -n -t ORIGIN.pdf -o DESTINY.pdf -s CERTIFICATE -p PASSWORD', $output, $return);
当我执行它时,$ output是一个空数组,$ return是一个int(1) ,但如果我跑:
When I execute it, the $output is an empty array and $return is an int(1), but if I run:
java -jar PROGRAM.jar -n -t ORIGIN.pdf -o DESTINY.pdf -s CERTIFICATE -p PASSWORD
在命令行中它可以工作。任何人都可以帮助我吗?
In command line it works. Can anyone help me?
谢谢。
推荐答案
最后我可以解决问题。
解决方案是:
exec('java -Djava.awt.headless=true -jar PROGRAM.jar -n -t ORIGIN.pdf -o DESTINY.pdf -s CERTIFICATE -p PASSWORD', $output, $return);
添加 -Djava.awt.headless = true
选项你告诉java它是间接调用,所以它无法控制键盘,鼠标等。
Adding the -Djava.awt.headless=true
option you're telling java that it's an indirect call so it hasn't control over keyboard, mouse, etc.
这篇关于无法用php exec函数执行java程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文