Чи компілятор Java Eclipse є лише обгорткою навколо того самого ядра, в javac
яке обгорнута програма, або це взагалі окремий компілятор? Якщо останні, чому б вони винаходили колесо?
Чи компілятор Java Eclipse є лише обгорткою навколо того самого ядра, в javac
яке обгорнута програма, або це взагалі окремий компілятор? Якщо останні, чому б вони винаходили колесо?
Відповіді:
Eclipse реалізував власний компілятор, який називається Eclipse Compiler for Java (ECJ).
Він відрізняється від javac - компілятора, який постачається з Sun JDK. Одна помітна відмінність полягає в тому, що компілятор Eclipse дозволяє запускати код, який насправді не був правильно скомпільований. Якщо блок коду з помилкою ніколи не запускається, ваша програма буде працювати нормально. В іншому випадку він видасть виняток, який вказує на те, що ви намагалися запустити код, який не компілюється.
Інша відмінність полягає в тому, що компілятор Eclipse дозволяє нарощувати додаткові збірки всередині Eclipse IDE, тобто весь код збирається, як тільки ви закінчите вводити текст.
Факт, що Eclipse поставляється із власним компілятором, очевидний і тому, що ви можете писати, компілювати та запускати Java-код у Eclipse, навіть не встановлюючи Java SDK.
Кілька прикладів, коли ECJ віддається перевагу над javac, є:
-proceedOnError
і він просто не створюватиме .class файли з джерела з помилками.
Всі вже пояснювали, що вони різні. Ось деяка різниця у поведінці, яку я помітив між двома укладачами. Усі вони зводяться до помилки (принаймні) в одній із реалізацій.
Вбудований компілятор Eclipse базується на компіляторі Jikes java IBM . (Зауважте, Eclipse також почав своє життя в IBM). Він повністю незалежний від компілятора Java від Sun в JDK; це не обгортка навколо Сонця javac
.
Jikes існує давно, він був набагато швидшим, ніж стандартний компілятор JDK Java (але я не знаю, чи це все-таки так). Щодо того, чому IBM хотів написати власний компілятор Java: можливо, через причини ліцензування (вони також мають власну реалізацію Java).
Це взагалі окремий компілятор. Це потрібно, оскільки javac не дозволяє компілювати злегка зламаний код із сайту eclipse
Поступовий компілятор Java. Реалізований як конструктор Eclipse, він базується на технології, розробленій з компілятора VisualAge для Java. Зокрема, це дозволяє запускати та налагоджувати код, який все ще містить невирішені помилки.