【问题标题】:PHP command shell_exec() not working for my custom Java app5PHP 命令 shell_exec() 不适用于我的自定义 Java app5
【发布时间】:2010-06-09 15:17:38
【问题描述】:

我已经制作了一个自定义 java 程序来输出许可证,并尝试在 php 中运行它。

$deviceid="12345";
$command_app = 'java -jar /home/myname/secure/mycommand.jar ';
$privateKey = 'QEFAASCAmEwggJdAgE';
$command_app_args = "\"$privateKey\" deviceid=$deviceid";
$command=$command_app.$command_app_args;
$license = shell_exec($command);

问题是 $license 每次都是空的,我尝试使用打印出 $command

echo $command;

然后直接在linux终端运行该命令,xml输出正确。

我正在使用

System.out.println() 

在 java 应用程序中打印所有 xml 输出。我尝试了一些简单的东西,比如

shell_exec('ls -l') ;

如果有效的话,就可以了。

我可能做错了什么?

【问题讨论】:

  • which java 能得到什么?

标签: java php


【解决方案1】:

我的第一直觉是命令 java 不在 PHP 的 shell 路径中。试试这样的:

$command_app = '`which java` -jar /home/myname/secure/mycommand.jar ';

which java 命令将返回 java 可执行文件的完整路径...

【讨论】:

  • $java = which java;回声 $java;什么也没产生,但是 $java = ls -l;回声 $java;工作
  • which ls 产生 /bin/ls 所以由于某种原因 php 即使使用 which 命令也无法找到 java
  • 我在 php 命令中使用了完整路径 /usr/java/jdk1.6.0/bin/java 而不是 java 并且它有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-31
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多