无法用php exec函数执行java程序 [英] Can't execute java program with php exec function

查看:94
本文介绍了无法用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆