如何从java运行cygwin脚本



我正试图从我在windows中编写的Java程序中运行bash脚本。我一直在尝试使用Runtime对象来让进程工作,我的程序编译和运行时没有异常,但我的简单测试脚本(只生成一个目录)没有被执行。

到目前为止,我得到的是:

String cmmd[] = new String[3];
    cmmd[0] = "C:\cygwin\bin\bash.exe";
    cmmd[1] = "cd C:/Users/pro-services/Desktop/projects/github/cygwin";
    cmmd[2] = "bash TEST.sh";
    Runtime rt= Runtime.getRuntime();
    Process proc = rt.exec(cmmd);

这基本上是我在网上论坛上发现的不同东西的混合,但我想我只是不太明白Process类发生了什么(我对Runtime类只有一个基本的想法)。

我也发现了这个,并把我自己的东西插在我认为应该放的地方:

Runtime.getRuntime().exec(new String[]{"C:\cygwin\bin\bash.exe",
                                                    "-c", "c:\cygwin\bin\run.exe -p /bin bash C:\Users\pro-services\Desktop\projects\github\cygwin\TEST.sh"},
                                      new String[]{"PATH=/cygdrive/c/cygwin/bin"});

在这里,我不确定"-c""-p"字符串代表什么,但我只是接受了它。起初,我看起来可以插入我希望Runtime/Process对象执行的顺序命令,本质上是创建一个"脚本"来运行我的脚本。但现在看来,它还有更多…

在这一点上,我只是在黑暗中拍摄,我试图理解文档,但我迷路了。如有任何帮助,我们将不胜感激。谢谢))

未测试,但我认为:

cmmd[0] = "C:/cygwin/bin/bash.exe";
cmmd[1] = "-c";
cmmd[2] = "cd /cygdrive/c/Users/pro-services/Desktop/projects/github/cygwin && bash TEST.sh";

最新更新