【发布时间】:2012-06-21 22:21:31
【问题描述】:
我在使用 PHP exec() 函数时遇到了困难。它似乎没有调用某些函数。例如,代码echo exec('ls'); 不会产生任何输出(应该是,目录中有文件)。这对我来说是个问题的主要原因是我正在尝试从 PHP exec() 调用中执行 .jar。
据我所知,我正确调用了 java 程序,但没有得到任何输出。 .jar 可以从服务器上的命令行执行。 (为了记录,它是一个 apache 服务器)。
我的 .jar 执行文件如下所示:
$output = array();
exec('java -jar testJava.jar', $output);
print_r($output);
我从这个 exec() 调用中得到的输出只有 Array()。
我已成功执行 exec() 执行 'whoami' 和 'pwd'。我无法弄清楚为什么有些功能可以工作而有些不能。我也不是 PHP 方面最有经验的人,所以我不太确定如何诊断这个问题。任何和所有的帮助将不胜感激。
【问题讨论】:
-
确切的错误是什么?而且,你可能想使用这样的东西:
new BufferedWriter(new FileWriter(new File("out.txt"))); -
该错误实际上是 out.txt 的 FileNotFoundException 。我的理解是该文件没有被创建,因此没有找到它。
-
您可能还需要更改 jar 尝试将文件写入到的目录的权限。不仅仅是 jar 文件本身的权限。
-
是的,好像是这样。您也可以尝试用 File 包裹它。
-
@AlexLynch 嘿,这行得通 - 现在 .jar 从命令行执行没问题。我现在用 PHP 试试并更新我的问题。