当我编译时,javac 输出:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.`
我想压制这个警告。尝试 -Xlint:none 似乎没有帮助。
当我编译时,javac 输出:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.`
我想压制这个警告。尝试 -Xlint:none 似乎没有帮助。
从我在文档中可以看出,您不能在命令行上执行此操作。
根据javac
文档, -Xlint:none 仅禁用“Java 语言规范未强制要求”的警告。似乎警告您使用已弃用的 API 是由语言规范管理的。
您最好的选择是修复已弃用 API 的使用。但是,一个选项是将@SuppressWarnings("deprecation")
注释添加到使用已弃用 API 的类或方法中。
两种可能的方式:
@SuppressWarnings("deprecation")
对于其他谷歌搜索这个问题并像我一样偶然发现这个线程的人......
尝试:-Xlint:-deprecation
它似乎适用于 JDK 6……不确定其他人。
在 Java 6 中,@Depreated 注释和编译器标志都不会在这里为您提供帮助。唯一对我有用的解决方案是在不推荐使用的方法上添加带有@deprecated(小型大写字母)标记的javadoc注释:
/**
* @deprecated overriding deprecated method
*/
@Override
public javax.xml.bind.Validator createValidator() throws JAXBException {...}
(该示例来自一个派生自 JAXBContext 的类。)
(我没有导入已弃用的 Validator 类以避免在导入语句上出现警告。)
使用gradle时,您可以轻松配置它:
tasks.withType(JavaCompile) {
options.deprecation = false
}
(使用 Gradle 2 和 Java 8 测试)
如果它是一个核心 Java API,那么几乎可以肯定会有一个替代品可以满足您的需求。使用该额外参数运行 javac,然后查看已弃用方法的 API 并根据需要进行替换。
使用 nowarn 属性见下文
例如
<javac srcdir="src"
destdir="build/classes" source="1.6"
target="1.6" debug="true" encoding="Cp1252"
nowarn="on">
默认情况下 nowarn 属性是关闭的
@SuppressWarnings("deprecation")
不适合我,而是我用过
@SuppressWarnings("unchecked")
如果您在命令行中编译,您可以使用 过滤消息grep
,只需过滤掉包含不需要的内容的消息,例如grep -v deprecated
. 您可以使用|
将输出发送到 grep,
your compile command | grep -v deprecated