Can't execute javac or other command line applications in Java using ProcessBuilder under Windows 7

前端 未结 3 1146
梦毁少年i
梦毁少年i 2021-01-29 02:33

I\'m trying to execute javac from Java using ProcessBuilder but i get no output and nothing happens. I tried reading the input stream (as there is a bug where the process hangs

3条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2021-01-29 03:03

    The string array that you pass to ProcessBuilder should contain one argument per array element, not everything in a single big string.

    Try this:

    String[] commands = new String[] 
    {
      "C:\\Windows\\System32\\cmd.exe", 
      "/c", 
      "C:\\\"Program Files\"\\Java\\jdk1.6.0_23\\bin\\javac.exe"
    };
    

    Btw: there is no need to call cmd.exe, you can pass javac.exe directly to the ProcessBuilder

    ProcessBuilder builder = new ProcessBuilder(
       "C:\\\"Program Files\"\\Java\\jdk1.6.0_23\\bin\\javac.exe", "\\Path\\To\\MyClass.java"
    );
    

提交回复
热议问题