Java processbuilder运行cygiwn命令

Java processbuilder运行cygiwn命令,java,cmd,cygwin,sh,processbuilder,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",

尝试使用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

尝试使用
dir
=>
D:/app/Cygwin/bin/dir

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


可能是相关的:你认为我必须为cygwin home设置环境变量吗?它不起作用,我添加了环境变量…我尝试了,'D:/app/cygwin/bin/dir',但仍然得到相同的错误'/usr/bin/dir:无法访问cd/cygdrive/D/csi/&dir&&ls-l:没有这样的文件或目录'谢谢你的帮助..嗨,这是一条不同的错误消息:
usr/bin/dir:无法访问cd/cygdrive/D/csi/
,因此您的
dir
命令正常/已找到,这是路径的另一个问题