java - 如何在Java编写的IDE中集成GCC编译器?

标签 java c gcc ide

如果我用 java 编写自己的编辑器,那么是否可以运行用 C 编程语言编写的程序?如果是的话怎么办?

最佳答案

试试这个:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class C_Compile {
public static void main(String args[]){

    String ret = compile();
    System.out.println(ret);

}
    public static String compile()
    {
        String log="";
        String myDirectory = "C:\\";
         try {
             String s= null;
           //change this string to your compilers location,Assume C file is in c:\\Hello.c
             Process p = Runtime.getRuntime().exec("cmd /C gcc Hello.c", null, new java.io.File(myDirectory));

         BufferedReader stdError = new BufferedReader(new 
              InputStreamReader(p.getErrorStream()));
         boolean error=false;

         log+="";
         while ((s = stdError.readLine()) != null) {
             log+=s;
             error=true;
             log+="\n";

         }
         if(error==false) log+="Compilation Successful !!!";

     } catch (IOException e) {
         e.printStackTrace();
     }
         return log;
    }


  public int runProgram() 
    {
        int ret = -1;
       try
         {            
             Runtime rt = Runtime.getRuntime();
             Process proc = rt.exec("cmd.exe /c start a.exe");
             proc.waitFor();
             ret = proc.exitValue();
         } catch (Throwable t)
           {
             t.printStackTrace();
             return ret;
           }
       return ret;                      
    }}

关于java - 如何在Java编写的IDE中集成GCC编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18780922/

相关文章:

ios - 适用于 iOS 目标的 Ada 交叉编译器

c++ - Objective-C 中调用方法与 C++ 有何不同?

pio 训练阶段的 java.lang.StackOverflowError

c - 理解递归函数调用

c - 为什么这个 C 代码的输出应该是 "no"?

c - 如何判断可执行文件是否是为当前机器编译的?

c - 如何编译使用不推荐使用的函数(例如 gets())的 C 程序

java - 您可以使用 Hibernate/Lucene 对同一字段进行排序和搜索吗?

java - 从 JSF 页面中删除附加 header

java - 从 Parcelable 类中读取和写入 java.util.Date