java - 从java程序调用C编译器

标签 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编译器。我检查过这没有引发任何异常。它应该在我的当前目录中创建一个名为 a.exe 的文件,其中包含 program.c 文件,但事实并非如此。正确的方法是什么?

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

提前致谢。

最佳答案

What is the proper way to do it?

一种方法是使用 javax.tools.JavaCompiler “从程序中调用 Java™ 编程语言编译器。”有一个例子here .

关于java - 从java程序调用C编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19627788/

相关文章:

c - 如何在 ncurses 中重新定义颜色对?

java - 使用 BufferedOutputStream 创建大文件需要很长时间

java - 在 JNI 中传递对象总是返回 NULL

java - Ant脚本中**/*的含义

c - "scanf with printf"与 "fgets with printf"

java - Jtables(数组常量初始值设定项)java

Java 方法 (type, double) 对于大数返回负值(不足以超过最大值)

c++ - 是否可以编译在所有 Linux 发行版中执行的 C/C++ 源代码而无需重新编译?

java - 处理自己滚动的 JTabel 替代方案

java - 如何在 Java (NetBeans) 中将禁用按钮的文本颜色更改为黑色?