web-dev-qa-db-ja.com

非推奨のAPIに関するjavac警告を抑制するにはどうすればよいですか?

コンパイルすると、javacは次を出力します。

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

この警告を抑制したいと思います。 -Xlint:noneを試しても役に立たないようです。

50
IttayD

私がドキュメントで伝えることができることから、あなたはコマンドラインでそれを行うことはできません。

javac documentation によれば、-Xlint:noneは「Java Language Specification」によって強制されていない」警告のみを無効にします。非推奨のAPIの使用は、言語仕様によって管理されています。

最適なオプションは、非推奨のAPIの使用を修正することです。ただし、推奨されないAPIを使用しているクラスまたはメソッドに@SuppressWarnings("deprecation")注釈を追加するオプションがあります。

32
Thomas Owens

2つの可能な方法:

  1. 非推奨のAPIを使用しないでください
  2. @SuppressWarnings("deprecation") を使用します
27
Joachim Sauer

Googleがこの問題を検索し、私がやったようにこのスレッドにつまずいた他の人のために...

試してください:-Xlint:-deprecation

JDK 6で動作するようです...他の人についてはわかりません。

22
Jeff

Java 6の場合、@ Depreatedアノテーションもコライラフラグもここでは役に立ちません。私のために働いた唯一の解決策は、javadocコメント@ deprecated(スモールキャップ)非推奨メソッドのタグ:

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

(この例は、JAXBContextから派生したクラスからのものです。)

(インポートステートメントの警告を避けるために、非推奨のValidatorクラスをインポートしませんでした。)

10
Wolfgang

gradleを使用すると、簡単に設定できます。

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

(Gradle 2およびJava 8)でテスト済み)

5
Arne Burmeister

それがコアの場合、Java API、あなたが望むことをする代替品がほぼ確実にあります。その余分なパラメータでjavacを実行し、非推奨メソッドのAPIを見て、適切な。

1
Matt Poush

nowarn属性を使用してください

例えば.

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

デフォルトでは、nowarn属性はオフです

0
coolcoder

@SuppressWarnings("deprecation")が機能していませんが、代わりに使用しました

@SuppressWarnings("unchecked")
0
Kaushal28