使用gcc通过javacode编译C源代码

我试图使用exec方法通过java代码编译c文件

String inputFilePath = "\"D:\\Soft\\WebApplication\\build\\web\\code\\Demo.c\""; String[] commands = {"cmd", "/c", "gcc",inputFilePath,"-o","Demo"}; Process p=Runtime.getRuntime().exec(commands); DataInputStream din=new DataInputStream(p.getErrorStream()); String s="",temp; while((temp=din.readLine())!=null) s+=temp; if(s.equals("")){ cf.setResult("No Syntax Error"); } else cf.setResult(s); 

但它不会生成demo.exe文件

使用ProcessBuilder可以使这更容易。

这应该适用于Windows(此刻,我这里只有Linux)。

 String directory = "D:\\Soft\\WebApplication\\build\\web\\code\\"; String[] commands = {"cmd", "/C", "gcc", "Demo.c", "-o", "Demo.exe"}; ProcessBuilder pb = new ProcessBuilder(); pb.directory(new File(directory)); pb.command(commands); Process p = pb.start(); // process in/out streams