java如何编译c或c++文件

使用g++或者cl.exe都可以,编译已有的cpp文件,如果编译有错如何获得错误信息,另外限制运行的时间

    java是不能够编译C/C++文件的。他们原理完全不同。背后的运行机制也完全不一样。

    C/C++源文件只能够用C/C++的编译器来编译。

    以GCC编译器为例,整个编译可以分为四步。
    第一步是预处理,包括语法检查等工作。
    gcc -P abc.c
    第二步由源程序生产汇编语言代码。
    gcc -S abc.c
    会生成abc.s文件,这个文件里就是汇编代码。
    第三步编译器生成目标代码,一个源文件生成一个目标代码。
    gcc -c abc.c
    会生成abc.o
    第四步连接器从目标代码生成可执行文件。
    gcc abc.o
    目标代码包括机器码和符号表(函数及变量名)。连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号(函数及变量名),将几个目标代码合成可执行文件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-05
try {
    final long timeout = 3000; // 限制的执行时间(毫秒)
    String cmd = "g++ *.cpp -o your_app_name";
    final long starttime = System.currentTimeMillis();
    final Process process = Runtime.getRuntime().exec(cmd); // 执行编译指令
    if (process != null) {
        InputStream is = process.getInputStream(); // 获取编译命令输出
        InputStream error = process.getErrorStream(); // 获取编译命令错误输出
        new Thread() {
            public void run() {
                while (true) {
                    try {
                        sleep(10);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    if (System.currentTimeMillis() - starttime > timeout) {
                        // 超时
                        process.destroy();
                    }
                }
            }
        }.start();
    }
} catch (IOException e) {
    e.printStackTrace();
}

 大概是这个意思,没调试运行过。

本回答被提问者采纳
第2个回答  2014-08-05
java是不能编译c或者c++文件的,g++和cl.exe都能编译cpp文件
g++ 源文件 -o 目标文件
cl.exe很少在命令行下调用吧,
错误信息一般都会在屏幕上打印出来。
第3个回答  2014-08-05
如果你说的只是java的话是不可能编译的.如果说的是java的集成开发环境如Eclipse的话,安装G++的插件就可以了.
第4个回答  2014-08-05
什么意思,没明白。
java是用jdk中的javac去编译的。
c的东西用g++编译的。