Java processbuilder运行cygiwn命令

时间:2015-06-22 20:12:48

标签: java cmd cygwin sh processbuilder

尝试编写代码以使用processbuilder从java代码运行cygwin命令。不确定是什么问题。请帮助我,谢谢高级!!

以下代码

import java.io.*;

public class test_6 {
    public static void main(String[] args) throws Exception {
        ProcessBuilder buildercmd = new ProcessBuilder(
            "cmd.exe", "/c", "cd \"D:\\csi\" && dir" +
                    "&& dir");

        ProcessBuilder buildercygwin = new ProcessBuilder(
                "D:/app/Cygwin/bin/bash", "-c", "cd /cygdrive/D/csi/ && dir" +
                        "&& ls -l");

        buildercygwin.redirectErrorStream(true);
        Process p = buildercygwin.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) { break; }
            System.out.println(line);
        }
    }
}

它在我的代码中使用cmd工作,但有些原因使用cygwin无法正常工作。

我得到以下输出:

/usr/bin/bash: dir: command not found

1 个答案:

答案 0 :(得分:1)

尝试使用dir =>的完整路径D:/app/Cygwin/bin/dir

cygwin有一个dir.exe,对于Windows版本,它是一个内部命令。源:

https://superuser.com/questions/229945/where-are-the-standard-windows-prompt-commands-files