疯狂的绿绿 2022-04-25 16:41
浏览 15
已结题

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();
        } 

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

  • 写回答

1条回答 默认 最新

  • 疯狂的绿绿 2022-04-25 17:08
    关注

    找到一种可行方法

    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){
    
            }
    
    
    评论

报告相同问题?

问题事件

  • 系统已结题 5月3日
  • 创建了问题 4月25日

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题