我怎样才能抑制有关弃用API javac的警告?(How can I suppress javac

2019-07-22 08:10发布

当我编译,javac的输出:

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

我希望禁止这种警告。 试图-Xlint:无似乎并没有帮助。

Answer 1:

从我可以在文档中告诉,你不能做它的命令行。

按照javac文档 ,-Xlint:无只禁止警告“不是由Java语言规范规定”。 看来,警告您使用弃用API的是由语言规范管理。

你最好的办法是解决使用过时的API。 然而,一个选项是将添加@SuppressWarnings("deprecation")注释到使用失效API的类或方法。



Answer 2:

两种可能的方法:

  1. 不要使用已过时的API
  2. 使用@SuppressWarnings("deprecation")


Answer 3:

而在其他一些谷歌搜索这个问题,偶然发现了这个线程像我一样...

尝试:-Xlint:-deprecation

这似乎在JDK 6工作...不知道其他人。



Answer 4:

随着Java 6中,无论是@Depreated注解,也不是comiler标志将帮助你在这里。 这工作对我来说唯一的解决办法是把与@deprecated(小盘股),一个javadoc注释标记的方法已过时:

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

(该例子是从不同于JAXBContext而派生的类。)

(我没有进口过时的验证类,以避免import语句的警告。)



Answer 5:

当使用gradle这个你可以很容易地对其进行配置:

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

(具有摇篮2和Java 8测试)



Answer 6:

如果它是一个核心的Java API,几乎肯定是一个替代品,会做你想要什么。 运行带有额外参数的javac,再看看API已过时的方法,并在适当更换。



Answer 7:

@SuppressWarnings("deprecation")工作不适合我,而不是我用

@SuppressWarnings("unchecked")


Answer 8:

使用nowarn属性见下文

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

默认情况下nowarn属性是关闭



Answer 9:

如果您在命令行编译您可以筛选邮件grep ,只是筛选出具有不必要的内容,例如像消息grep -v deprecated 。 您可以使用| 将输出发送到grep,

your compile command | grep -v deprecated


文章来源: How can I suppress javac warnings about deprecated api?