2009-10-29 3 views
32

Мне нужно собрать компиляцию со специальной JRE, которая была «настроена».Как Eclipse компилирует классы только с JRE?

Eclipse способен скомпилировать классы с помощью этой JRE, но мне нужно создать скрипт сборки вне Eclipse.

Что такое метод, используемый Eclipse для генерации файлов .class без JDK?

ответ

45

Eclipse, приходит со своим собственным компилятором по следующим причинам:

  • Инкрементальных компиляции (можно компилировать только измененные части проекта, которая может означать больше, чем количество файлов, которые вы только что сохранили, например, когда вы изменили какой-то глобальный)
  • Компилятор Eclipse может создавать файл класса, даже если код содержит ошибки. Это позволяет запускать проект, даже если не все компилируется.
  • Компилятор обеспечивает Eclipse AST, поэтому он может выполнять всевозможные причудливые вещи (например, контур, показывать все места, где используется переменная под курсором и т. Д.) Без каких-либо дополнительных затрат (т.е. необходимо запустить компилятор и другой парсер).
+12

Существует даже документация о том, как запустить компилятор Eclipse в качестве автономного приложения вне Eclipse: http://help.eclipse.org/galileo/topic/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm –

+0

Принял благодарность за комментарий от Joachim. Я нашел ту же ссылку, которая дает полное описание того, как использовать класс BatchCompiler. – glmxndr

+0

Спасибо за хорошее объяснение. Откуда вы нашли эту информацию? Мне очень сложно найти информацию об особенностях компилятора Eclipse. –

5

Я считаю, что Eclipse поставляется с внутренними компиляторами, и вы можете выбрать совместимость с Java 1.3 до 1.6 (см. Меню «Настройки» в Java-> Compiler). Таким образом, Eclipse не нуждается во внешнем JDK для компиляции, потому что он поставляется с ним самодостаточным.

Если вы хотите создать скрипт сборки вне Eclipse, вам понадобится внешний компилятор, такой как тот, который поставляется с реальным JDK.

-1

Eclipse был первоначально создан IBM. Eclipse имеет собственный встроенный компилятор Java, который основан на компиляторе IBM Java, Jikes.

+0

Я не думаю, что компилятор Eclipse основан на Jikes. Это может быть очень вдохновлено, но поскольку jikes реализован на C++, а компилятор Eclipse - это чистая Java, я сомневаюсь, что они унаследовали любые основные части кода. –

+0

Хорошо, если это так, то компилятор Eclipse не является точно Jikes. По крайней мере, они оба возникли из IBM. – Jesper

2

Для конкретного случая: компилятор Eclipse является частью JDT core.

Смежные вопросы