从Java程序编译C代码

我正在尝试以下代码来编译带有Java程序的外部C程序

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public static void main(String[] args){ try{ Runtime rt=Runtime.getRuntime(); Process pr=rt.exec("cmd /c PATH=%PATH%;c:\\TC\\BIN"); pr=rt.exec("cmd /cc:\\TC\\BIN\\TCC.exe c:\\TC\\EXAMPLE.c"); pr=rt.exec("c:\\TC\\EXAMPLE.exe"); BufferedReader input=new BufferedReader(new InputStreamReader(pr.getInputStream())); String line=null; while((line=input.readLine())!=null){ System.out.println(line); } int exitVal=pr.waitFor(); System.out.println("exited with error code "+exitVal); } catch(Exception e){ System.out.println(e.toString()); //e.printStackTrace(); } } } 

但我得到了:

java.io.IOException:无法运行程序“c:\ TC \ EXAMPLE.exe”:CreateProcess error = 2,系统找不到指定的文件

编译过程不起作用,那么我还可以做什么来编译我的C代码?

请使用Processbuilder API,文档中有一个如何使用各种标志的示例。

我认为你在有机会生成之前调用已编译的程序。 你应该等待电话:

 pr=rt.exec("cmd /cc:\\TC\\BIN\\TCC.exe c:\\TC\\EXAMPLE.c"); 

在尝试调用编译输出之前完成。