从java程序调用C编译器

从java程序调用C编译器,java,c,swing,mingw,processbuilder,Java,C,Swing,Mingw,Processbuilder,我有一个项目,我需要编译C程序。这个项目是用Java编写的。我必须将程序放入一个JTextArea(我正在使用Swing for GUI),在一个测试文件上运行它,并将结果输出到另一个JTextArea。但我的代码似乎有点不对劲 Process p = new ProcessBuilder("c:\\MinGW\\bin\\cc.exe", "program.c").start(); program.c包含用户进入TextArea的程序,“c:\MinGW\bin\cc.exe”是我的c编译器

我有一个项目,我需要编译C程序。这个项目是用Java编写的。我必须将程序放入一个JTextArea(我正在使用Swing for GUI),在一个测试文件上运行它,并将结果输出到另一个JTextArea。但我的代码似乎有点不对劲

Process p = new ProcessBuilder("c:\\MinGW\\bin\\cc.exe", "program.c").start();
program.c包含用户进入TextArea的程序,“c:\MinGW\bin\cc.exe”是我的c编译器。我检查了一下,这没有引发任何异常。它应该在我的当前目录中创建一个名为a.exe的文件,其中包含program.c文件,但它不是。正确的方法是什么

我看到了另外两个类似的帖子,但是他们也没有提供一个简单的解决方案。 此外,我还必须在它之后运行创建的可执行文件

提前谢谢

正确的方法是什么


一种方法是使用“调用Java”™ 程序中的编程语言编译器。“有一个例子。

ProcessBuilder
不会引发异常。如果进程中出现错误(即编译器失败),您应该读取进程的输出,以确保没有任何错误……阅读(并实现)所有的建议。这可能会解决问题。如果没有,它应该提供更多关于失败原因的信息。然后忽略它引用的
exec
,并(继续)使用
ProcessBuilder
构建
流程。“我看到另外两篇类似的帖子……”链接?@AndrewThompson这些链接我都忘了。当我给这篇文章命名时,他们提出了一些建议。今晚我将对此进行研究。一个是@AndrewThompson这是我第一次参加任何论坛,我也是java新手。对不起,我忘了我必须接受我认为有用的答案。:)