在JSP文件中抑制Java未经检查的警告
我有一个使用jstl和Struts 1标签的遗留webapp。 当我使用Java 5/6预编译JSP文件时,jstl和Struts 1标记会抛出有关“未检查或不安全操作”的警告。 例如,如果我使用以下标记:
抛出以下警告:
[javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details.
如果我使用-Xlint重新编译:unchecked,我会获得有关违规JSP标记库的内部工作的详细信息。 我想压制所有未经检查的操作警告。 我认为使用-Xlint:-unchecked会抑制警告,但事实并非如此。
在编译JSP页面时如何禁止这些警告? 重新编写JSP标记库或更新一千个JSP页面是不切实际的。 我正在寻找一个编译器标志来全局禁用警告,所以我可以看到除了未经检查的警告之外的所有警告。 谢谢!
这些消息是(JDK> = 1.5的强制)注释,而不是警告。
compiler.note.unchecked.plural=\ Some input files use unchecked or unsafe operations.
默认编译器行为与-Xlint:-unchecked
相同-Xlint:-unchecked
。
使用-Xlint:unchecked
您可以打开警告,报告每个实例。
compiler.warn.unchecked.assign=\ [unchecked] unchecked assignment: {0} to {1} ...
强制性注释不能单独禁用,它们都使用-Xlint:none
禁用。 不幸的是,其他警告也被禁用。
您可以检查备选方案的其他响应,但过滤编译器输出消息似乎是最简单的解决方案。
你是对的
-Xlint:unchecked
与你想要的相反,但你也可以使用
-Xlint:-unchecked
注意那里的额外“ – ”。
这将禁用有关未经检查的操作的所有警告,而不仅仅是标记库生成的警告,但仍会显示其他警告。
禁用该警告的最佳方法是停止在JSP中使用Java代码。 开始习惯使用JSTL或JSF(根据需要使用自定义标记库)。
但是对于遗留应用程序,你最不可能做到这一点,而且你只需要接受警告。 当然,您可以将-nowarn标志添加到编译器,但这将禁用所有警告,而不仅仅是这个警告,这可能超出您的需要。