gpt4 book ai didi

java - 如何从java运行cygwin脚本

转载 作者:行者123 更新时间:2023-12-01 05:26:21 24 4
gpt4 key购买 nike

我正在尝试从我在 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" 字符串代表什么,但我只是同意了。起初,我似乎可以插入我希望运行时/进程对象执行的顺序命令,本质上是创建一个“脚本”来运行我的脚本。但现在看来,还有更多的事情......

此时我只是在黑暗中拍摄,我试图理解文档,但我迷失了。任何帮助,将不胜感激。谢谢)))

最佳答案

未经测试,但我认为:

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";

关于java - 如何从java运行cygwin脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9623863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com