Подтвердить что ты не робот

Как я могу подавить предупреждения javac об устаревших api?

Когда я компилирую, выходы javac:

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.`

Я хочу подавить это предупреждение. Попытка -Xlint: ничто не помогает.

4b9b3361

Ответ 1

Из того, что я могу сказать в документах, вы не можете сделать это в командной строке.

В соответствии с javac документацией, -Xlint: никто не отключает предупреждения, "не соответствующие спецификации языка Java". По-видимому, предупреждение о том, что использование устаревших API-интерфейсов управляется спецификацией языка.

Ваш лучший вариант - исправить использование устаревших API. Тем не менее, вариантом было бы добавить аннотацию @SuppressWarnings("deprecation") к классам или методам, использующим устаревшие API.

Ответ 2

Два возможных способа:

Ответ 3

Для других, которые Google искали эту проблему и наткнулись на этот поток, как я это сделал...

Try: -Xlint: -deprecation

Кажется, что работает над JDK 6... не уверен в других.

Ответ 4

С Java 6 ни поддержка @Depreated, ни флаг компилятора не помогут вам здесь. Единственное решение, которое сработало для меня, заключалось в том, чтобы добавить комментарий javadoc с тегом @deprecated (small caps) в устаревшем методе:

/**
  * @deprecated overriding deprecated method
  */
@Override
public javax.xml.bind.Validator createValidator() throws JAXBException {...}

(Пример из класса, который происходит из JAXBContext.)

(я не импортировал класс устаревших Validator, чтобы избежать предупреждения в инструкции импорта.)

Ответ 5

При использовании gradle вы можете легко его настроить:

tasks.withType(JavaCompile) {
    options.deprecation = false
}

(проверено с помощью gradle 2 и Java 8)

Ответ 6

Если это основной Java API, почти наверняка будет замена, которая будет делать то, что вы хотите. Запустите javac с этим дополнительным параметром, а затем посмотрите на API для устаревшего метода и замените его соответствующим образом.

Ответ 7

@SuppressWarnings("deprecation") не работает для меня, вместо этого я использовал

@SuppressWarnings("unchecked")

Ответ 8

использовать атрибут nowarn ниже

например.

<javac srcdir="src" 
  destdir="build/classes" source="1.6" 
  target="1.6" debug="true" encoding="Cp1252"
  nowarn="on">

по умолчанию атрибут nowarn отключен