Java processbuilder 运行 cygiwn 命令

标签 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

最佳答案

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

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

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

关于Java processbuilder 运行 cygiwn 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30989006/

相关文章:

java - 将 Oracle Forms 10 转换为 Java

java - 无法解析所有 androidx 库

c# - 使用 C#,如何从批处理脚本创建的新 cmd.exe 运行命令?

c# - 从 C# 强制运行批处理文件从文件目录运行?

c - mcheck.h 在 Windows 中缺失,但在 Linux 中不存在

java - 如何使用java将数据放入单独的新列csv中?

java - eclipse java资源泄漏

api - Heroku:http-error 410。来自 API 的无效响应(我不在代理后面)

C/Cygwin : Porting htoll() from macOS/unix to Windows Cygwin

linux - cygwin编译数学库