从Java运行脚本

从Java运行脚本,java,cygwin,Java,Cygwin,我有许多脚本可以通过cygwin在Windows上运行 每当我使用新的沙盒时,这些脚本文件总是需要手动编辑 因此,我正在考虑编写一个小小的JavaUI应用程序,它将根据用户的UI设置自动编辑脚本 我读过一些关于从Java运行脚本文件的文章,但没有看到任何关于如何通过cygwin在Windows上运行脚本文件的文章 有没有其他人做过这件事,或者知道以前的帖子可以让我参考?如果cygwin在您的路径上,您可以像其他Java外部程序一样执行它 注意:您必须以真实代码读取并行线程中的流!这只是在wind

我有许多脚本可以通过
cygwin
Windows
上运行

每当我使用新的沙盒时,这些脚本文件总是需要手动编辑

因此,我正在考虑编写一个小小的
Java
UI应用程序,它将根据用户的UI设置自动编辑脚本

我读过一些关于从
Java
运行脚本文件的文章,但没有看到任何关于如何通过
cygwin
Windows
上运行脚本文件的文章


有没有其他人做过这件事,或者知道以前的帖子可以让我参考?

如果
cygwin
在您的路径上,您可以像其他Java外部程序一样执行它

注意:您必须以真实代码读取并行线程中的流!这只是在windows上通过cygwin运行bash脚本的概念证明

Process process = Runtime.getRuntime().exec("bash -c ./script.sh");
InputStream inputStream = process.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = bufferedReader.readLine()) != null) {
    System.out.println(line);
}

如果执行Cygwin安装目录中的
Cygwin.bat
文件,您将看到您的会话变为Cygwin会话,然后您可以在Cygwin会话中运行所有可以运行的命令

如果随后将
cygwin/bin
目录添加到路径中,则可以像linux环境一样直接执行命令


在我的例子中,我在PATH系统变量
C:\cygwin64\bin
的末尾添加了以下内容,现在我可以像正常会话一样直接运行
bash
和其他命令。

是否要编辑文件,或者运行脚本?我正在尝试运行脚本,但假设我可以根据用户从UI输入的设置在Java中编辑文件。您建议“您可以像Java中的任何其他外部程序一样执行它”。在Windows上运行Linux脚本时,我必须:1)从cygwin会话cd/cygdrive/d/运行cygwin 2)。。。。到脚本文件所在的位置3)运行脚本。/script。。。我看不出这一切是如何像Windows上的任何其他命令一样运行的;例如:exec(“./script.sh”);谢谢你,格雷厄姆