我有一个我创建的jar文件可以生成PDF文件。我从命令行这样调用它 -
java -jar project.jar 'Author, An---A Title'
这样可以正常工作但是当我使用以下代码从PHP文件调用相同的jar文件时,它会创建一个具有正确名称的文件,但它是空的并且具有零字节。
<?php
echo exec("java -jar project.jar 'Author, An---A Title'");
?>
我确定这不是jar的问题(因为它可以从命令行运行)而且我几乎可以肯定它不是来自PHP文件(因为它创建了空文件,因此它必须已被读取) ,所以我认为问题可能与目录的权限?我正在使用linux,PHP正在运行在OPT目录中的XAMMP。有什么想法吗?
提前致谢。
答案 0 :(得分:0)
我不确定您是否可以控制Java源代码,但至少症状表明它没有在相关文件的close()
或OutputStream
上调用Writer
更新:尝试shell_exec()
,看看结果是什么。可能它中途抛出了一些异常,这些异常写入你完全错过的stderr
在PHP代码中。 exec()
仅捕获stdout
。
$result = shell_exec("java -jar project.jar 'Author, An---A Title'");
if ($result) {
echo nl2br($result);
} else {
echo "shell_exec() failed";
}