Get output of cmd command from java code

前端 未结 3 1249
甜味超标
甜味超标 2021-01-05 18:26

I have a program where I was able to successfully execute cmd commands from my code, but I want to be able to get the output from the cmd command. How can I do that?

3条回答
  •  悲哀的现实
    2021-01-05 18:46

    You need to the OutputStream (InputStream) of your Process (and you should use a ProcessBuilder)... like so

    public static void main(String[] args) {
      String filename = args[1].substring(0, args[1].length() - 5);
      String cmd1 = "javac " + args[1];
      String cmd2 = "java " + filename;
    
      try {
        // Use a ProcessBuilder
        ProcessBuilder pb = new ProcessBuilder(cmd1);
    
        Process p = pb.start();
        InputStream is = p.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String line = null;
        while ((line = br.readLine()) != null) {
          System.out.println(line);
        }
        int r = p.waitFor(); // Let the process finish.
        if (r == 0) { // No error
           // run cmd2.
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    

提交回复
热议问题