我曾尝试寻找答案,但无法找到与我的案件有关的任何内容。
我想要执行的内容非常简单......它是对SPMF框架jar文件的调用。
这是代码 -
<?php
exec('java -jar spmf.jar run Apriori /opt/lampp/htdocs/rrugd/ip.txt /opt/lampp/htdocs/rrugd/output.txt %20');
?>
为什么这不执行? 它显然使用cli完美运行。 包含所有文件的文件夹(jar文件,ip.txt,output.txt)将权限设置为r / w给所有用户
我在Linux上 - Ubuntu 13.10
答案 0 :(得分:1)
我找到了解决方案。
问题在于spmf zip文件的路径。
要么需要完整路径,要么与脚本位于同一文件夹中。
我把它放在与脚本相同的文件夹中解决了。(在我使用lampp的htdocs下)
此外,该文件夹需要具有其他权限才能设置为&#34;创建和删除&#34;使php能够访问并将输出写入文件夹。
答案 1 :(得分:0)
基本调试:如果exec()不起作用,那么你需要检查返回值:
exec('some command here', $output, $return_var);
var_dump($output, $return_var);
永远不要假设外部资源成功。始终检查返回值并输出错误消息。
很可能java
不在PHP用于处理exec()调用的任何shell的路径中,这意味着您需要exec('/full/path/to/java ...')
代替。