我尝试从这样的php文件中运行一个jar:
exec("java -jar /home/florinbuda/NetBeansProjects/monkey1/dist/monkey1.jar", $result);
print_r($result);
如果我从命令行运行它,那就可以了:
$ php runner.php
但如果我尝试通过http-localhost-server / runner.php加载它,它就无法正常工作,页面会一直保持加载而不会出现任何错误。
在.jar文件中,如果jar甚至开始工作,我现在添加了一个简单的测试
public static void main(String[] args) {
new File("/home/florinbuda/Desktop/xxx").mkdir();
并且你可以猜到 - 当我调用http-localhost-server / runner.php时,jar甚至没有开始被执行...
这是一个权利问题?你有什么建议?
答案 0 :(得分:4)
是的,这是许可问题。
你应该chmod .jar文件的父文件夹。
chmod 755 -R /home/florinbuda/NetBeansProjects/monkey1/dist/
编辑:然后您的脚本应如下所示:
exec("PATH_TO/java -jar /home/florinbuda/NetBeansProjects/monkey1/dist/monkey1.jar");
答案 1 :(得分:0)
bash中的环境变量在exec()中不一样。至少使用java bin的完整路径。您也可以尝试运行/ path / to / java以查看正常输出是否正常工作。