有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    new ProcessBuilder("mvn -version")不会像您预期的那样,使用参数-version运行mvn。相反,它尝试运行一个名为mvn -version的程序。也就是说,程序名本身有两个单词和一个空格。你没有这样一个项目,这很有道理!:-)

    请注意,ProgramBuilder的构造函数takes a ^{} argument用于程序名和参数。你想要的是:new ProcessBuilder("mvn", "-version")