Java进程错误,无法运行程序
我正试图通过java运行一个命令,即:mvn-version,但我一直遇到以下错误:
java.io.IOException: Cannot run program "mvn -version": error=2, No such file or directory
我知道这个命令有效,因为我已经手动测试了它。以下是运行该命令的代码:
public InputStream runCommand() {
try {
ProcessBuilder processBuilder = new ProcessBuilder("mvn -version");
Process process = processBuilder.start();
try {
process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String s = null;
while((s = bufferedReader.readLine())!= null){
System.out.println(s);
}
System.out.println();
return process.getInputStream();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
有人能指出我做错了什么吗
# 1 楼答案
new ProcessBuilder("mvn -version")
不会像您预期的那样,使用参数-version
运行mvn
。相反,它尝试运行一个名为mvn -version
的程序。也就是说,程序名本身有两个单词和一个空格。你没有这样一个项目,这很有道理!:-)请注意,ProgramBuilder的构造函数takes a ^{} argument 用于程序名和参数。你想要的是:
new ProcessBuilder("mvn", "-version")