如何从Java运行bash脚本

如何从Java运行bash脚本,java,exception,process,cygwin,Java,Exception,Process,Cygwin,我看到过许多类似的帖子,但我仍然感到困惑。我想用Java程序运行此shell脚本: C:\\Users\\pro-services\\Desktop\\projects\\github\\cygwin\\TEST.sh 下面是代码的样子: ProcessBuilder pb = new ProcessBuilder("C:\\Users\\pro-services\\Desktop\\projects\\github\\cygwin\\TEST.sh"); Process p = pb.sta

我看到过许多类似的帖子,但我仍然感到困惑。我想用Java程序运行此shell脚本:

C:\\Users\\pro-services\\Desktop\\projects\\github\\cygwin\\TEST.sh
下面是代码的样子:

ProcessBuilder pb = new ProcessBuilder("C:\\Users\\pro-services\\Desktop\\projects\\github\\cygwin\\TEST.sh");
Process p = pb.start();
我正在尝试使用Process Builder,但我不确定如何使其工作-我不断收到错误:

Cannot run program "C:\Users\pro-services\Desktop\projects\github\cygwin\TEST.sh": CreateProcess error=193, %1 is not a valid Win32 application

我知道还有一些我没有使用的
ProcessBuilder
字段。我也知道这里可能有语法问题。我为Cygwin写了剧本。有什么帮助吗?

请不要将脚本作为可执行文件传递给,而是将路径传递到二进制文件,并将脚本作为参数传递:

ProcessBuilder pb = new ProcessBuilder("C:\\path\\to\\bash.exe", "C:\\Users\\pro-services\\Desktop\\projects\\github\\cygwin\\TEST.sh");
Process p = pb.start();
可能重复的