Java 如何在Cygwin shell中的Windows中执行批处理文件

Java 如何在Cygwin shell中的Windows中执行批处理文件,java,batch-file,cygwin,Java,Batch File,Cygwin,我试图在Windows机器上通过jsp执行一个批处理文件,它运行良好,没有任何问题 但是,DOS没有与sed unix命令等效的命令。因此,我必须安装cygwin,以便在批处理文件中使用以下sed命令 sed -i "s/<model.version>2.1.1-SNAPSHOT<\/model.version>/<model.version>2.1.1-b-1<\/model.version>/g" pom.xml 请告知 您需要将cygw

我试图在Windows机器上通过jsp执行一个批处理文件,它运行良好,没有任何问题

但是,DOS没有与sed unix命令等效的命令。因此,我必须安装cygwin,以便在批处理文件中使用以下sed命令

sed -i "s/<model.version>2.1.1-SNAPSHOT<\/model.version>/<model.version>2.1.1-b-1<\/model.version>/g" pom.xml  

请告知

您需要将cygwin目录添加到您的路径中。(或服务路径)然后可以从DOS提示符或bat脚本运行cygwin命令


或者,您可以为您的c:\cygwin\usr\bin\sed.exe或其他任何文件提供完整路径。

是否只是从项目中获取
sed
?您可以将它与本机windows shell一起使用。

您可以自动最小化窗口,我想您根本不想看到窗口?无法从cygwin运行批处理脚本。只有sh/bash shell脚本。要运行bash脚本,请运行bash.exe-c而不是cmd.exewell,我将批处理文件运行到Windows上的cygwin shell中,它对我来说运行得非常好。我在windows运行对话框中使用命令bash--login--i进入bash shell,然后使用./build-model.bat执行批处理文件,结果很好。这真的是实现您想要的最好方法吗?看起来开销很大。你不能在java中做你想做的吗?沿着这条路走下去就是痛苦。还有疯狂。但我想主要是疼痛。
File dir = new File("C:\\Projects\\release-builds");  
Runtime.getRuntime().exec("cmd.exe /c start build-model.bat", null, dir);