编译时,javac输出:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.`
我希望压制这个警告。尝试-Xlint:none似乎没有帮助。
答案 0 :(得分:32)
从文档中我可以看出,你不能在命令行上做到这一点。
根据javac
documentation,-Xlint:none仅禁用“Java语言规范未强制要求”的警告。似乎警告您使用已弃用的API由语言规范管理。
您最好的选择是修复已弃用API的使用。但是,一个选项是将@SuppressWarnings("deprecation")
注释添加到使用不推荐使用的API的类或方法中。
答案 1 :(得分:27)
两种可能的方式:
@SuppressWarnings("deprecation")
答案 2 :(得分:22)
对于谷歌搜索此问题的其他人,偶然发现了这个问题...
尝试: -Xlint:-deprecation
它似乎适用于JDK 6 ......不确定其他人。
答案 3 :(得分:10)
使用Java 6,@ Depreated注释和comiler标志都不会对您有所帮助。对我有用的唯一解决方案是在弃用的方法上使用 @deprecated (小型大写)标记添加 javadoc评论:
/**
* @deprecated overriding deprecated method
*/
@Override
public javax.xml.bind.Validator createValidator() throws JAXBException {...}
(该示例来自一个派生自JAXBContext的类。)
(我没有导入已弃用的Validator类以避免对import语句发出警告。)
答案 4 :(得分:5)
使用 gradle 时,您可以轻松配置它:
tasks.withType(JavaCompile) {
options.deprecation = false
}
(使用Gradle 2和Java 8测试)
答案 5 :(得分:1)
如果它是一个核心Java API,几乎可以肯定有一个替代品可以做你想要的。使用该额外参数运行javac,然后查看已弃用方法的API并根据需要进行替换。
答案 6 :(得分:1)
@SuppressWarnings("deprecation")
不适用于我,而是使用了
@SuppressWarnings("unchecked")
答案 7 :(得分:0)
使用nowarn属性见下文
e.g。
<javac srcdir="src"
destdir="build/classes" source="1.6"
target="1.6" debug="true" encoding="Cp1252"
nowarn="on">
默认情况下,nowarn属性已关闭