javac和Eclipse编译器有什么区别?
Eclipse的Java编译器只是围绕程序所包裹的同一核心的包装器,还是完全是一个单独的编译器?如果是后者,他们为什么要重新发明轮子?javac
Eclipse的Java编译器只是围绕程序所包裹的同一核心的包装器,还是完全是一个单独的编译器?如果是后者,他们为什么要重新发明轮子?javac
Eclipse已经实现了自己的编译器,称为Eclipse Compiler for Java(ECJ)。
它与 Javac 不同,javac 是 Sun JDK 附带的编译器。一个值得注意的区别是,Eclipse编译器允许您运行实际上没有正确编译的代码。如果从未运行过带有错误的代码块,则程序将正常运行。否则,它将引发一个异常,指示您尝试运行未编译的代码。
另一个区别是 Eclipse 编译器允许从 Eclipse IDE 内部进行增量构建,也就是说,一旦完成键入,所有代码就会被编译。
Eclipse附带自己的编译器的事实也很明显,因为您可以在Eclipse中编写,编译和运行Java代码,甚至无需安装Java SDK。
ECJ优于javac的几个例子是:
每个人都已经解释过他们是不同的。以下是我注意到两个编译器之间的一些行为差异。它们都归结为(至少)其中一个实现中的错误。