在localhost上从Java调用时,Php exec无法正常运行

时间:2016-06-23 10:55:03

标签: java php exec httpurlconnection

我在php脚本中运行exec命令时遇到问题 这是详细的情景:

  • 我有一个可执行文件 my_exe ,它从命令行运行。此可执行文件使用环境变量,因此我在命令前添加MY_VARIABLE='value'(工作正常)。

  • 我使用 exec 命令从Php脚本运行此可执行文件。例如:exec("MY_VARIABLE='value' my_exe");(也可以正常工作,在浏览器中测试)

  • 问题出在这一部分。当我使用 HttpUrlConnection 从Java程序调用php脚本时,我有两种情况:如果我从服务器外部运行Java程序(使用公共IP地址),我会得到很好的结果,但是当我从服务器运行它(使用本地IP,表单命令行ex。" java -jar /path/to/my/jar"),Php可以运行但exec似乎没有正常工作。在这种情况下没有设置环境变量,因此可执行文件运行但没有正确的值,因此我没有得到任何结果。

感谢任何帮助。我真的被困在这里了。我的猜测是Php或Java权限存在问题,但我无法弄清楚。

1 个答案:

答案 0 :(得分:0)

奇怪的命令exec("MY_VARIABLE='value' my_exe"); ...它只能在linux机器上运行,不会在Windows上运行。 作为第一步,尝试重写这样的php代码:

putenv("MY_VARIABLE=value");
exec("my_exe");

看看会发生什么。