一尘不染

javac和Eclipse编译器有什么区别?

java

Eclipse的Java编译器是否只是包裹该javac程序的同一个内核的包装器,还是完全独立的编译器?如果是后者,为什么还要重新发明轮子呢?


阅读 845

收藏
2020-02-28

共1个答案

一尘不染

Eclipse实现了自己的编译器,称为Java Eclipse编译器(ECJ)。

它不同于Sun JDK附带的编译器javac。一个显着的区别是Eclipse编译器使您可以运行实际上未正确编译的代码。如果永远不会运行带有错误的代码块,则您的程序将正常运行。否则,它将引发异常,表明您试图运行未编译的代码。

另一个区别是Eclipse编译器允许从Eclipse IDE内部进行增量构建,也就是说,一旦完成键入,便会编译所有代码。

Eclipse自带编译器这一事实也很明显,因为您可以在Eclipse中编写,编译和运行Java代码,而无需安装Java SDK。

与Javac相比,首选ECJ的一些示例是:

Apache Tomcat使用ECJ来编译JSP,
从GNU Java编译器(GCJ)4.3开始,IntelliJ IDEA支持ECJ 。
GCJ与ECJ集成在一起,
Liferay与ECJ一起构建。

2020-02-28