【发布时间】:2014-04-30 18:49:51
【问题描述】:
我正在尝试通过 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.util.这种行为的原因是什么,为了让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)
【问题讨论】:
-
如果你只是在命令行中运行
sh test.sh,输出是什么?输出有java版本吗?