如何抑制sun.reflect.Reflection专有API警告?

3

可能是重复问题:
无法停止Ant生成编译器警告

如何抑制此警告:

sun.reflect.Reflection is Sun proprietary API and may be removed in a future release

如何在Oracle javac(1.6)中使用@SuppressWarnings

根据这篇博客,使用"all"应该可以工作,但事实并非如此。有人知道正确的字符串是什么吗?


你不能使用 java.lang.reflect 吗? - assylias
1
@assylias:1)另一个问题也没有得到回答。2)java.lang.reflection没有sun.reflect.Reflection.getCallerClass - ceving
1个回答

4

尝试在javac命令行中添加-XDignore.symbol.file选项。

-XDignore.symbol.file

希望这可以帮到你。

编辑参考: OPENJDK

示例6

要编译您的源代码,您可以使用带有-source 1.6 -target 1.6的JDK7中的javac,或者使用带有-XDignore.symbol.file = true的已打补丁的JDK6中的javac。该标志是必需的,因为javac使用符号文件来确定com / sun命名空间中的包,并且不会将新的sctp类识别为它们不在此符号文件中。


这似乎有所帮助,但我不知道为什么。这是做什么的?为什么它会抑制警告?还有一些我可能不想要的东西,它会做什么? - ceving
请参考编辑。 - Mukul Goel
我没有收到关于缺失类的错误,但是收到了关于专有API的警告。一个“sctp”类(无论它是什么)怎么可能改变API而成为专有的呢?不管怎样... - ceving
嗯...我自己也不太确定,但我曾经遇到过类似的问题,并进行了一些研究。我发现sun.reflect.Reflection包没有从上面提到的符号文件中引用,因此它不会尝试加载该模块,从而抑制了警告...无论如何...没有太多信息可用...但这样做就可以解决问题了。 :-) - Mukul Goel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接