Компилятор Java

На этой странице можно настроить параметры, связанные с компиляцией, компоновкой и проверкой исходного кода на Java.

Параметры компилятора Java разбиты на следующие разделы:

Общие

Совместимость с JDK

Опция

Описание

По умолчанию

Уровень совместимости компилятора

Задает уровень совместимости компилятора.

1.4

Применять параметры совместимости по умолчанию

Если эта опция включена, то применяются параметры совместимости по умолчанию для уровня совместимости компилятора.

Вкл.

Уровень совместимости создаваемых файлов классов

Задает уровень совместимости создаваемых файлов классов.

1.2

Совместимость исходного кода

Задает уровень совместимости для исходного кода.

1.3

Запретить идентификаторы с именем 'assert'

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении использования 'assert' в качестве идентификатора (зарезервированное ключевое слово в J2SE 1.4).

Предупреждение

Запретить идентификаторы с именем 'enum'

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении использования 'enum' в качестве идентификатора (зарезервированное ключевое слово в J2SE 5.0).

Предупреждение

Генерация файлов классов

Добавлять атрибуты переменных в создаваемые файлы классов

Если эта опция включена, то в файл классов будут добавлены атрибуты переменных. Это позволит показывать имена локальных переменных в отладчике (в тех местах, где переменным заведомо присваиваются значения). Это увеличит размер итогового файла .class.

Вкл.

Добавлять атрибуты номеров строк в создаваемые файлы классов

Если эта опция включена, то в файл классов будет добавлена информация о номерах строк. Это позволит выделять исходный код в отладчике.

Вкл.

Добавлять имя исходного файла в создаваемый файл классов

Если эта опция включена, то в файл классов будет добавлено имя исходного файла. Это позволит отладчику отобразить соответствующий исходный код.

Вкл.

Сохранять неиспользуемые локальные переменные

Если эта опция включена, то неиспользуемые (т.е. ни разу не прочитанные) локальные переменные не будут удалены из файла классов. Их удаление может изменить отладку.

Вкл.

Встраивать блоки finally

Если опция включена, то блоки finally встраиваются в создаваемые файлы классов. Это улучшает быстродействие, но увеличивает размер файлов классов.

Выкл.

Компоновка

Общие

Опция

Описание

По умолчанию

Максимальное число неполадок для модуля компиляции

Задает максимальное число сообщений о неполадках для модуля компиляции.

100

Разрешить использование шаблонов исключения в папках исходного кода

Если эта опция выключена, то записи в пути к классам проекта нельзя связывать с шаблоном исключения.

Вкл.

Разрешить использование нескольких выходных расположений для папок исходного кода

Если эта опция выключена, то записи в пути к классам проекта нельзя связывать с конкретным выходным расположением - это предотвращает использование нескольких выходных расположений.

Вкл.

Неполадки пути компоновки

Прерывать компоновку при ошибках в пути компоновки

Позволяет прекращать работу компоновщика, если путь к классам недопустим.

Вкл.

Неполный путь компоновки

Указывает серьезность неполадки, возникающей, когда запись в пути к классам отсутствует, недопустима или невидима (например, если соответствующий проект закрыт).

Ошибка

Циклические зависимости

Указывает серьезность неполадки, возникающей, когда проект содержит циклические ссылки.

Ошибка

Несовместимые обязательные двоичные объекты

Задает уровень серьезности сообщения о неполадке, когда проект требует несовместимых двоичных объектов.

Игнорировать

Выходная папка

Повторяющиеся ресурсы

Указывает серьезность неполадки, возникающей, когда в выходное расположение требуется скопировать несколько вхождений ресурса.

Предупреждение

Очищать папки вывода при очистке проектов

Указывает, разрешено ли компоновщику Java очищать выходные папки при выполнении полной компоновки.

Вкл.

Отфильтрованные ресурсы

Перечисленные через запятую шаблоны файлов, которые не копируются в выходную папку.  

''

Ошибки/предупреждения

Стиль кода

Опция

Описание

По умолчанию

Нестатический доступ к статическому элементу

Если эта опция включена, то компилятор выдаст ошибку или предупреждение, когда обнаружит, что к статическому полю или методу обращается приемник выражений. Ссылка на статический элемент должна быть уточнена именем типа.

Предупреждение

Косвенный доступ к статическому элементу

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при косвенном обращении к статическому полю или методу. Статическое поле интерфейса должно быть указано с полным именем, включая имя объявляющего типа.

Предупреждение

Доступ по неполному пути к полю экземпляра:

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении доступа к полю по неполному имени (без 'this').

Игнорировать

Недокументированный пустой блок

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении пустого блока операторов без комментариев.

Игнорировать

Обращение к недоступному элементу вмещающего типа

Если эта опция включена, то компилятор выдаст ошибку или предупреждение, когда обнаружит эмуляцию доступа к недоступному элементу окружающего типа. Такие обращения могут вызвать снижение производительности.

Игнорировать

Методы с именем конструктора

Называть метод именем конструктора обычно считается плохим стилем программирования. Если эта опция включена, то компилятор будет сообщать об этом как об ошибке или о предупреждении.

Предупреждение

Использование неэкспортированных строк

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении неэкспортированных литеральных строк (т.е. не содержащих тега //$NON-NLS-<n>$).  

Игнорировать

Потенциальные неполадки в коде

Сериализуемый класс без serialVersionUID

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении типа, реализующего 'java.io.Serializable', но не имеющего поля serialVersionUID.

Предупреждение

Безрезультатное присваивание (например, 'x = x')

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении безрезультатного присваивания (например, 'x = x').

Предупреждение

Возможное случайное булевское присваивание ( 'if (a = b)')

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении случайного булевского присваивания (например, 'if (a = b)').

Предупреждение

Ненормальное завершение блока finally

Если эта опция включена, то компилятор будет выдавать сообщение об ошибке или предупреждение при ненормальном завершении блока с ключевым словом 'finally'.

Предупреждение

Пустой оператор

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении пустого оператора (ненужной точки с запятой).

Игнорировать

Применение символьного массива в конкатенации строк

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении выражения char[] в конкатенациях строк, например:

"hello" + new char[]{'w','o','r','l','d'}

Предупреждение

Скрытые блоки catch

Локально по отношению к оператору try некоторые блоки catch могут скрывать другие, например:

try { throw new java.io.CharConversionException();
} catch (java.io.CharConversionException e) {
} catch (java.io.IOException e) {}.

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении скрытых блоков catch, соответствующих отмеченным исключительным ситуациям.

Предупреждение

Конфликты и наложение имен

Объявление поля, скрывающее другое поле или переменную:

Если эта опция включена, то компилятор выдаст ошибку или предупреждение, если объявление поля скрывает другое унаследованное поле.

Игнорировать

Объявление локальной переменной, скрывающее другое поле или переменную:

Если эта опция включена, то компилятор выдаст ошибку или предупреждение, если объявление локальной переменной скрывает другое поле или переменную.

Игнорировать

Добавить параметры конструктора или метода set

Если эта опция включена, то компилятор также выдаст ошибку или предупреждение, если параметр конструктора или метода set скрывает другое поле или переменную.

Выкл.

Тип параметра скрывает другой тип

Если эта опция включена, то компилятор выдаст ошибку или предупреждение, если параметр типа внутреннего класса скрывает внешний тип.

Предупреждение

Переопределенные методы, не видимые в пакете

Метод, применяемый в пакете по умолчанию, не видим в другом пакете и поэтому не может быть переопределен. Если эта опция включена, то компилятор будет сообщать об этом как об ошибке или о предупреждении.

Предупреждение

Конфликт метода интерфейса с защищенным методом 'Object'

Если эта опция включена, то компилятор выдаст ошибку или предупреждение, когда обнаружит, что интерфейс определяет метод, несовместимый с ненаследуемым методом Object. Пока этот конфликт не будет устранен, реализовать такой интерфейс будет нельзя, например:

interface I {
   int clone();
}

Предупреждение

Конфликты и наложение имен

Устаревший API

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении устаревших API.

Предупреждение

Извещать об использовании устаревших API в устаревшем коде

Если эта опция включена, то компилятор сообщит об обнаружении устаревших API в устаревшем коде. Серьезность неполадки определяется опцией "Устаревшие API".

Выкл.

Извещать о переопределении или реализации устаревшего метода

Если эта опция включена, то компилятор сообщит об обнаружении переопределения или реализации устаревшего метода. Серьезность неполадки определяется опцией "Устаревшие API".

Выкл.

Запрещенная ссылка (правила доступа)

При включении этой опции компилятор будет сообщать о запрещенной ссылке в правилах доступа.

Ошибка

Нежелательная ссылка (правила доступа)

При включении этой опции компилятор будет сообщать о нежелательной ссылке в правилах доступа.

Предупреждение

Ненужный код

Локальная переменная никогда не читается

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение, если локальная переменная объявлена, но никогда не используется в этой области.

Предупреждение

Параметр ни разу не считывается

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение, если параметр объявлен, но не используется в этой области.

Игнорировать

Проверять переопределяющие и реализующие методы

При включении этой опции компилятор также будет выдавать сообщение об ошибке или предупреждение, если параметр объявлен, но не используется в этой области в переопределяющих или реализующих методах.

Выкл.

Неиспользуемые объявления импорта

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении неиспользуемых ссылок на объявление импорта.

Предупреждение

Неиспользованные локальные или закрытые элементы

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение, если локальный или закрытый метод объявлены, но никогда не используются в этой единице компиляции.

Предупреждение

Ненужный оператор else

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении лишнего оператора else (например, if (condition) return; else doSomething();).

Игнорировать

Ненужная операция преобразования типов или 'instanceof':

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении лишнего приведения типов или оператора instanceof (например, if (object instanceof Object) return;).

Игнорировать

Ненужное объявление генерируемой исключительной ситуации

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении лишнего объявления исключительной ситуации.

Игнорировать

Проверять переопределяющие и реализующие методы

При включении этой опции компилятор будет также выдавать сообщение об ошибке или предупреждение при обнаружении лишнего объявления исключительной ситуации в переопределяющих или реализующих методах.

Выкл.

Опции J2SE 5.0

Операция с непроверенным параметризуемым типом

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении операции с непроверенным параметризуемым типом.

Предупреждение

Параметр шаблонного типа, объявленный в связывании типа final

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении типа, объявленного в связывании типа final.

Предупреждение

Неточное совпадение типов для аргументов vararg

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении неточного совпадения типов для аргументов vararg.

Предупреждение

Приведение типов

Если эта опция включена, то компилятор будет выдавать ошибку или предупреждение при каждом выполнении преобразования приведения типов. Автоматическое приведение типов снижает быстродействие.

Игнорировать

Отсутствует аннотация '@Override'

При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если в объявлении метода, переопределяющего другой метод, нет аннотации @Override.

Игнорировать

Отсутствует аннотация '@Deprecated'

При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если в объявлении устаревшего типа нет аннотации '@Deprecated'.

Игнорировать

Аннотация используется как базовый интерфейс

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении реализации типом аннотации. Это возможно по правилам языка, но не рекомендуется.

Предупреждение

Не все константы перечисления обрабатываются в 'switch'

При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если не все константы перечисления обрабатываются в операторе 'switch'.

Игнорировать

Необрабатываемые маркеры предупреждений в '@SuppressWarnings'

При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если он встречает необрабатываемые маркеры предупреждений в аннотации '@SuppressWarnings'.

Предупреждение

Включить аннотации '@SuppressWarnings'

При включении этой опции компилятор обрабатывать аннотации '@SuppressWarnings'.

Вкл.

Связанные концепции

Компоновщик Java

Связанные задачи

Компоновка программы на Java
Работа с путями компоновки
Работа с JRE

Связанные ссылки

Параметры переменных путей к классам
Свойства пути компоновки Java