当前位置: 首页 > 知识库问答 >
问题:

Runtime.getRuntime()。exec ->无法运行程序CreateProcess error=2,系统找不到指定的文件

戚飞雨
2023-03-14

我正在开发一个命令行java应用程序,它必须运行一个名为<code>gradlew的程序。bat assemblererelease在此目录中:this。workDir“/Project/CapAndroid”

所以我做了这个:

Process p = Runtime.getRuntime().exec("gradlew.bat assembleRelease", null , new File(this.workDir+"/Project/CapAndroid"));

该文件在该目录中100%确定,它在linux中运行完美,但在Windows上不工作!我遇到了这个错误:

java.io.IOException:无法运行程序“gradlew.bat”(位于目录“C:\ Users \ administrator \ Desktop \ generators \ And \ jobs \ 2247994 \ Project \ CapAndroid”):CreateProcess error = 2,系统找不到指定的文件

我觉得windows有一个问题就是知道exec()方法第一个参数传入的命令必须在最后一个参数传入的目录中执行。Linux很完美,OS X也是,问题只出在Windows上

多谢

共有1个答案

微生翼
2023-03-14

好吧,我终于解决了在.bat文件名称之前添加cmd / c的问题,现在它工作得很好:

Process p = Runtime.getRuntime().exec("cmd /c gradlew.bat assembleRelease", null , new File(this.workDir+"/Project/CapAndroid"));

希望这能对以后的人有所帮助

 类似资料: