我试图通过php exec
函数使用shell脚本来执行java
<?php
exec("./test.sh", $output, $exit_code);
foreach($output as $key => $val){
echo $key . " ". $val . "<br/>";
}
echo "exit code " . $exit_code;
?>
此处我的脚本test.sh
如下
echo "Hello world!";
java -version;
ls -l;
pwd;
这是exec
的输出exit_code等于0
0 Hello world!
1 total 18468
2 drwxrwxr-x 4 leonzo leonzo 4096 mars 22 06:45 assets
3 drwxrwxr-x 2 leonzo leonzo 4096 mars 22 06:45 backup
4 drwxrwxr-x 2 leonzo leonzo 4096 mars 22 06:57 com
5 drwxrwxr-x 2 leonzo leonzo 4096 mars 22 06:45 content
6 -rw-rw-r-- 1 leonzo leonzo 1096 mars 22 06:45 index.php
7 drwxrwxr-x 2 leonzo leonzo 4096 mars 22 06:57 mcd
8 -rw-rw-r-- 1 leonzo leonzo 153 mars 23 14:58 test_jar.php
9 -rw-rw-r-- 1 leonzo leonzo 152 mars 23 14:58 test_jar.php~
10 -rwxrwxrwx 1 leonzo leonzo 129 mars 23 15:08 test.sh
11 -rwxrwxrwx 1 leonzo leonzo 119 mars 23 15:02 test.sh~
12 -rw------- 1 leonzo leonzo 18844395 mars 23 14:45 videcom.jar
13 /home/leonzo/Documents/workspace/quifaitquoi
exit code 0
它清除我的shell脚本中的所有命令都已执行,除非java。这种行为的原因是什么,为了使java工作正常,还有什么特别的事吗?
版
确实java已安装在我的电脑上
>java -version
java version "1.7.0_21"
OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-0ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
答案 0 :(得分:0)
很抱歉我的猜测:这台机器上安装了java吗?控制台是否具有可以防止显示错误消息的默认设置?
请提供有关您的设置(环境)的更多详细信息。
答案 1 :(得分:0)
根据Linux系统,最好还将.bashrc文件中的JAVA_HOME变量路径保存在用户的主文件夹中。
像这样设置JAVA_HOME:
JAVA_HOME=/usr/lib/jvm/you-java-version .
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin