日期:2014-05-20  浏览次数:20697 次

java调用shell问题
java代码如下:

String[] cmd = new String[]{"/home/a/linuxshell.sh"};
Process ps = Runtime.getRuntime().exec(cmd);
BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
StringBuffer sb = new StringBuffer("正常信息:");
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
br.close();
sb.append("\n错误信息:");
br = new BufferedReader(new InputStreamReader(ps.getErrorStream()));
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
br.close();
        System.out.println(sb.toString());


shell

#!/bin/bash
cd /home/a
dir

这时出现错误信息了,不是java错误,是linuxshell系统出来的错误
打印了:错误信息:/home/a/linuxshell.sh: line 2: dir: No such file or directory

但如果在linuxshell中运行的话 没有任何问题。

------解决方案--------------------
dir没有加到环境变量里吧