我见过很多类似的帖子,但我仍然感到难过。我想用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编写了我的脚本。有什么帮助吗?
答案 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();