Компилятор Java Eclipse просто обертка вокруг того же ядра что javac
программа переносится, или действительно ли это - отдельный компилятор в целом? Если бы последний, почему они изобрели бы велосипед?
В Eclipse реализован собственный компилятор, называемый Eclipse Compiler for Java (ECJ).
Он отличается от javac, компилятора, поставляемого с Sun JDK. Одно из заметных отличий заключается в том, что компилятор Eclipse позволяет запускать код, который на самом деле не был правильно скомпилирован. Если блок кода с ошибкой никогда не будет запущен, ваша программа будет работать нормально. В противном случае будет выброшено исключение, указывающее на то, что вы пытались запустить код, который не компилируется.
Еще одно отличие заключается в том, что компилятор Eclipse позволяет выполнять инкрементальную сборку из среды Eclipse IDE, то есть весь код компилируется сразу после того, как вы закончили набор текста.
Тот факт, что Eclipse поставляется с собственным компилятором, также очевиден, поскольку вы можете писать, компилировать и запускать Java-код в Eclipse, даже не устанавливая Java SDK.
Несколько примеров, когда ECJ предпочтительнее javac:
Все уже объяснили, что они разные. Вот некоторые различия в поведении двух компиляторов, которые я заметил. Все они сводятся к ошибке (по крайней мере) в одной из реализаций.
Встроенный компилятор Eclipse основан на Jikes java compiler компании IBM. (Обратите внимание, что Eclipse также начинал свою жизнь в IBM). Он полностью независим от компилятора Java компании Sun в JDK; это не обертка вокруг javac
компании Sun.
Jikes существует уже давно, раньше он был намного быстрее, чем стандартный компилятор Java в JDK (но я не знаю, так ли это сейчас). Что касается того, почему IBM хотела написать свой собственный компилятор Java: возможно, по причинам лицензирования (у них также есть своя реализация Java).
Это вообще отдельный компилятор. Он необходим, так как javac не позволяет компилировать слегка поломанный код, с сайта eclipse
Инкрементный компилятор Java. Реализован в виде конструктора Eclipse, основан на технологии, развитой из компилятора VisualAge for Java. В частности, он позволяет запускать и отлаживать код, который все еще содержит нерешенные ошибки.