【问题标题】:Php exec is not running properly when called from Java on localhost从本地主机上的 Java 调用时,Php exec 无法正常运行
【发布时间】:2016-06-23 10:55:02
【问题描述】:

我在 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权限有问题,但我想不通。

【问题讨论】:

  • 注意:我使用的是 ubuntu 服务器

标签: java php exec httpurlconnection


【解决方案1】:

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

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

看看会发生什么。

【讨论】:

  • 顺便说一句,您是否为这两种情况运行了相同的 Java 程序?
  • 如果是这样,你能说明你是如何在 Java 中调用 HttpUrlConnection 的吗?
  • 是的,我在两种情况下都运行相同的 java。这就是让我眼花缭乱的地方。我以经典方式使用 HtpUrlConnection
  • 我的意思是,在这两种情况下,您对 HttpUrlConnection 都使用了什么 url
  • 你是如何从服务器外部运行你的java的?您能否展示您的一些代码(phpjava)?我会努力解决这个错误。
猜你喜欢
  • 2011-09-29
  • 2016-04-21
  • 2016-10-07
  • 2013-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多