运行时exec sh什么都不做

时间:2014-01-05 20:20:19

标签: java runtime sh

所以我想从java执行sh脚本

代码:

String command = "/__data/1.sh";
    ProcessBuilder pb = new ProcessBuilder("/bin/bash", "-c", command);
    Process p = null;
    try {
        p = pb.start();
    } catch (IOException e) {
        System.out.println("Could not execute script");
    }
    BufferedReader reader = new BufferedReader(new InputStreamReader(
            p.getInputStream()));

    try {
        String line = null;
        while ((line = reader.readLine()) != null) {
            System.out.println(command + " says: " + line);
        }
    } catch (IOException e) {
        System.out.println("Error reading response");
    }

1.sh:

echo Hello
mkdir QWE
echo Hello2

我得到了什么:

/__data/1.sh says: Hello
/__data/1.sh says: Hello2

Mkdir没有效果

1.sh chmodded to 777

有什么问题?

UPD:哦,我的错,忘了这条线,现在编辑了。但主要问题是为什么其他命令不起作用。是的,就像mkdir一样。 当我从控制台调用/ bin / bash -c /__data/1.sh时,它可以正常工作

UPD:哦,似乎,mkdir不能正常工作,因为我没有设置完整的路径。抱歉。解决

1 个答案:

答案 0 :(得分:2)

+ line结束时您遗漏了println。这应该至少摆脱一些混乱。不知道为什么mkdir不能正常工作。