如果我运行运行了shell_exec( '的Java')在命令行PHP任何回报
which java
获得正确的输入(/usr/java/.../bin/java)。但是,如果我在一个PHP脚本运行:
<?
echo 'java. ' . shell_exec('which java');
echo 'ls. ' . shell_exec('which ls');
?>
没有获取打印出的Java,但我得到了它LS正确的结果......
如果我运行运行了shell_exec( '的Java')在命令行PHP任何回报
which java
获得正确的输入(/usr/java/.../bin/java)。但是,如果我在一个PHP脚本运行:
<?
echo 'java. ' . shell_exec('which java');
echo 'ls. ' . shell_exec('which ls');
?>
没有获取打印出的Java,但我得到了它LS正确的结果......
两件事:
因此,例如:
echo shell_exec('/usr/java/jdk6/bin/java -cp myJars.jar MyMainClass arg1 2>&1");
谢谢,正是我在过去30分钟内所寻找的。添加2>&1工作。不知道为什么...... – giorgio79 2011-11-05 10:06:46
我只是碰到了这个问题为好。我试图确定qrencode
实用程序是否安装在(任何)服务器上,如果没有,则记录/警告/正常退出。
考虑到程序应该始终处于标准路径,我在which
命令前加上了二进制文件的可能位置,但仍然遵守$PATH
可能在系统上的某种定义。我想你可以使用与常见的Java路径这种做法,太:
shell_exec('PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" '.
'which qrencode');
服务器进程没有它的PATH环境变量设置。 – 2010-09-24 19:33:49
如果我发送硬编码路径,它的工作原理。然后我尝试将它包含在一个带有环境设置的bash文件脚本中,但它也没有工作... – 2010-09-25 16:05:34