【发布时间】:2012-03-08 19:48:23
【问题描述】:
我正在尝试从我在 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" 字符串代表什么,但我只是接受了。起初看起来我可以插入我希望运行时/进程对象执行的顺序命令,本质上是创建一个“脚本”来运行我的脚本。但现在看来,还有更多……
此时我只是在黑暗中拍摄,我试图理解文档但我迷路了。任何帮助,将不胜感激。谢谢)))
【问题讨论】: