Запуск компилятора javac из Eclipse может быть очень полезной функцией в некоторых случаях (например, для целей тестирования, для сравнения вывода javac с выводом компилятора Eclipse, для перекомпиляции отдельных файлов классов с помощью специальных параметров компилятора javac или скомпилятор другой версии JDK и т. д.).Помимо использования ant , есть два удобных способа интеграции javac в Eclipse: настройка «Конфигурация внешних инструментов» для javac или добавление javac в цепочку сборки Eclipse проекта.
Настройка «Настройки внешних инструментов» для javac
Вот шаги, необходимые для настройки компилятора javac, чтобы его можно было использовать в Eclipse (готовые конфигурации запуска приведены ниже):
- Создайте новую Конфигурацию внешних инструментов .
- Установите для "Местоположения" конфигурации путь к исполняемому файлу javac (например,
C:\Program Files (x86)\Java\jdk1.7.0_25\bin\javac.exe
). - Установите для параметра «-classpath» javac значение classpath проекта в поле «Аргументы» конфигурации (например,
-classpath ${project_classpath}
). - Установите параметр «-d»javac в двоичную папку проекта (например,
-d ${project_loc}\bin
). - Добавьте любые дополнительные параметры javac , например "-verbose" или "-parameters", в список аргументов.
- Добавить путь к файлу источникаФайл или исходная папка в end списка аргументов (например,
${selected_resource_loc}
для выбранного исходного файла или ${selected_resource_loc}\*
для выбранного пакета).Полное поле «Аргументы» для конфигурации может выглядеть следующим образом: -verbose -classpath ${project_classpath} -d ${project_loc}\bin ${selected_resource_loc}\*
- Запустите настройку внешнего инструмента для выбранного файла.
Кроме тогодля этого вам, вероятно, понадобится выбрать «Обновить ресурсы после завершения» для выбранного проекта на вкладке «Обновить» конфигурации инструмента и, возможно, отменить выбор «Сборка перед запуском» на вкладке «Сборка».
Я создал две конфигурации запуска по умолчанию для javac, которые вы можете использовать повторно, поместив их в файл, заканчивающийся на «.launch» в папке вашего проекта (например, «javac.launch»).Eclipse автоматически обнаружит эти файлы конфигурации, как только вы откроете диалоговое окно «Настройка внешних инструментов».Скорее всего, вам потребуется изменить местоположение javac на местоположение javac на вашем компьютере.
Файл "javac (подробный файл) .launch" - запускает javac с опцией -verboseдля одного выбранного файла:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LAUNCH_CONFIGURATION_BUILD_SCOPE" value="${none}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="C:\Program Files (x86)\Java\jdk1.8.0\bin\javac.exe"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value=" -verbose -classpath ${project_classpath} -d ${project_loc}\bin ${selected_resource_loc}"/>
</launchConfiguration>
Файл "javac (dir) .launch" - запускает javac для выбранного пакета:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LAUNCH_CONFIGURATION_BUILD_SCOPE" value="${none}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="C:\Program Files (x86)\Java\jdk1.8.0\bin\javac.exe"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-classpath ${project_classpath} -d ${project_loc}\bin ${selected_resource_loc}\*"/>
</launchConfiguration>
Добавление javac в цепочку сборки Eclipse проекта
Добавление javac в цепочку сборки, чтобы он выполнялся автоматически во время полной или автоматической сборки, выполняется аналогично описанному выше:
- Откройте свойства проекта и выберите вкладку «Строители».Затем, если у вас уже есть конфигурация запуска для javac (см. Выше), вы можете «Импортировать ...» как новый компоновщик.В противном случае вы можете создать конструктор "New ..." для javac.
- Скорее всего, вы захотите изменить аргументы для javac в соответствии с вашими потребностями.Сначала вы должны изменить аргумент «-d» на двоичную папку собранного проекта:
-d ${build_project}\bin
.Затем вы должны добавить исходные файлы / папки, которые вы хотите скомпилировать с помощью javac, в конец списка аргументов, используя переменную «$ {resource_loc}».Полный список аргументов для компиляции одного исходного файла может выглядеть следующим образом: -classpath ${project_classpath} -d ${build_project}\bin ${resource_loc:MyProject/src/myPackage/MyClass.java}
.Чтобы скомпилировать полный пакет, вместо этого вы можете написать ${resource_loc:MyProject/src/myPackage}\*
. - Выберите вкладку «Параметры сборки» для настройки, когда необходимо запустить Javac Builder.Возможно, вы захотите отменить выбор «После очистки».
- Если вы просто хотите добавить javac в качестве дополнительного компилятора поверх компилятора JDT для некоторых исходных файлов, то все готово. Если вы полностью хотите заменить JDT-компилятор, вы должны отменить выбор «Java Builder» на вкладке «Builders» и, возможно, захотите добавить новый инструмент в цепочку сборки, который выполняет чистую операцию для сборки (в противном случае класс файлы не будут удалены во время сборки).