无法使用ProcessBuilder运行shell脚本

时间:2018-05-24 09:59:34

标签: java shell processbuilder

我采用了其中一个类似问题的代码:

    Process p = null;
    ProcessBuilder pb = new ProcessBuilder("scr.sh");
    pb.directory(new File("/Users/alex/"));
    p = pb.start();
    Thread.sleep(TimeConst.SECOND);

public static main()运行此代码,我确实将scr.sh文件放在alex文件夹下,但收到例外:Caused by: java.io.IOException: error=2, No such file or directory

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

我删除了指定工作目录的行,并用绝对路径替换文件名,然后就可以了。

为了收到echo消息,我必须从我的stdin(?)中读取:

final Scanner in = new Scanner(p.getInputStream());
        new Thread(() -> {
            while (in.hasNextLine())
                System.out.println(in.nextLine());
        }).start();