从PHP执行Java Jar文件

时间:2012-10-07 21:27:10

标签: java php exec

不要欺骗我,因为在这个主题上有多个主题我当然在搜索答案时找到了。然而,我的问题似乎有所不同,因为我根本没有得到任何关于exec()调用的响应。以下是一些信息:

  • 我在Apache 2.2.22上运行PHP 5.4.7的MacOS上,并尝试从Java 1.6.0_35运行一个jar文件。
  • 我可以执行简单的命令,如“ls -l”,“which java”或“pwd”,但任何尝试调用java - 甚至“/ usr / bin / java -version”都会失败而没有任何响应;在exec()调用
  • 之后,PHP脚本只是停止丢弃任何其他命令
  • 我既没有从脚本本身获得任何输出,也没有在任何错误日志中获得任何输出。
  • 我尝试过exec,shell_exec,系统,但没有成功。
  • 我确保包含二进制文件,jar文件等的每一段java调用都存在,可以通过绝对路径访问;当然,该命令在命令行上运行没有任何问题
  • 调用本身看起来像'/ usr / bin / java -Djava.awt.headless = true -jar /Users/twolff/Projects//bin/java/net.adternity.utils.xml2xls/dist/net。 adternity.utils.xml2xls.jar --input =“/ private / tmp / report_rUEsDe.xml”--output =“/ private / tmp / report_7o1lFb.xls”'。
  • 我检查了PHP配置,但看不到任何错误(例如disable_functions,safe_mode等)
  • 我没有使用DYLIB环境变量问题运行MAMP

我现在迷路了,在哪里继续我的调查,如果有人能帮助我,我会很高兴。这是我在测试脚本中运行的代码:

try {
  $output = "";
  $return_val = 0;
  echo exec('/usr/bin/java -Djava.awt.headless=true -jar /Users/twolff/Projects/<project_name>/bin/java/net.adternity.utils.xml2xls/dist/net.adternity.utils.xml2xls.jar --input="/private/tmp/report_rUEsDe.xml" --output="/private/tmp/report_7o1lFb.xls"', $output, $return_val);
  echo "<br/>";
  echo serialize($output);
  echo "<br/>";
  echo $return_val;
  echo "<br/>";
} catch(Exception $e) {
  echo $e->getMessage();
  echo "<br/>";
}
echo "DONE";

同样,如果我只使用“哪个java”(或除了Java本身以外的任何其他东西),我会得到如下输出:

/usr/bin/java
a:1:{i:0;s:13:"/usr/bin/java";}
0
DONE

尝试运行Java应用程序不会返回任何内容,浏览器什么都不做。没有输出,没有错误日志。

感谢您对此进行调查。

托拜厄斯。

0 个答案:

没有答案