java代码编译cpp文件无反应

这是网上搜到跟着写的部分代码片段,执行成功,但是cpp文件并没有编译生成exe执行文件,
将语句改为 ProcessBuilder pb = new ProcessBuilder().command("D:\Dev-C\MinGW32\bin\g++.exe","-v");是有输出版本信息的

       BufferedReader br = null;
        try {
            File file = new File("D:\\C++\\temp.tmp");//新建一个用来存储结果的缓存文件
            if(!file.exists()) {
                file.createNewFile();
            }
            ProcessBuilder pb = new ProcessBuilder().command("D:\\Dev-C\\MinGW32\\bin\\g++.exe","d:\\C++\\hello.cpp");
            pb.redirectErrorStream(true);
            pb.redirectOutput(file);//把执行结果输出。
            pb.start().waitFor();//等待语句执行完成,否则可能会读不到结果。
            InputStream in = new FileInputStream(file);
            br= new BufferedReader(new InputStreamReader(in));
            String line = null;
            while((line = br.readLine()) != null) {
                System.out.println(line);
            }
            br.close();
            br = null;
            file.delete();
        } catch (Exception e) {
            e.printStackTrace();
        } 

想问问各位,有可能是哪里出了问题?

找到一种可行方法

try{
            List<String> commands = new ArrayList<>();
            commands.add("cmd.exe");
            commands.add("/c");
            commands.add("g++.exe D:\\C++\\hello.cpp -o D:\\C++\\hello");
            ProcessBuilder builder = new ProcessBuilder(commands);
            builder.directory(new File("D:\\Dev-C\\MinGW32\\bin"));
            Process process = builder.start();
            int status = process.waitFor();  // status为0,成功
            System.out.println(status);
        }catch (Exception e){

        }