如何从Java运行bash脚本

时间:2012-03-15 23:15:53

标签: 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.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编写了我的脚本。有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

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

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