【发布时间】:2015-08-25 11:52:45
【问题描述】:
我正在开发一个命令行 java 应用程序,它必须在此目录中运行一个名为 gradlew.bat assembleRelease 的程序: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\Administrador\Desktop\generators\And\jobs\2247994\Project\CapAndroid”): CreateProcess error=2, 系统找不到指定的文件
我觉得windows有问题要知道exec()方法第一个参数传入的命令必须在最后一个参数传入的目录中执行。 Linux 完美运行,OS X 也一样,问题仅在 Windows 中
非常感谢
【问题讨论】:
-
linux和MacOS X上的命令是
gradlew.bat? -
不,它只是没有 bat 的 gradlew,我重命名它,它是一个常量
-
删除您可能的重复评论,该错误是针对绝对路径中的空格
-
似乎您在程序中指定了系统路径,根据错误检查该路径,您的程序无法找到该路径。 :)
标签: java windows command-line runtime exec