当我使用JDK 1.7.0在OS X上编译Spring JDBC源代码时,我收到了以下警告:
warning: CachedRowSetImpl is internal proprietary API and may be removed in a future release
如何在编译期间抑制警告消息?
我已经知道并使用Java的@SuppressWarning注释。我正在寻找它的具体用途来抑制我所描述的警告。
我的问题是,在这一行代码中:
@SuppressWarnings("valuegoeshere")
“ValueGoesher”应该用什么来代替?
编辑:各位,我知道最好避免导致警告的代码。通常这是我的方法。然而,我在这里编译第三方代码,我不想重写。我只想添加正确的注释来抑制警告,这样我实际上可以做些什么的警告就不会被埋没。
看到这个答案了吗
无法阻止ant生成编译器Sun专有API警告
测试代码
@SuppressWarnings("sunapi")
sun.security.x509.X509CertImpl test;
编译命令行
javac test.java -Werror -Xlint:sunapi -XDenableSunApiLintControl
或
javac test.java -Werror -Xlint:all -XDenableSunApiLintControl
编译在没有任何警告的情况下通过
删除SuppressWarnings
标记并重新编译:
然后报告一个错误
test.java:4: warning: X509CertImpl is internal proprietary API and may be removed in a future release
sun.security.x509.X509CertImpl test;
^
error: warnings found and -Werror specified
1 error
1 warning
如果您使用的是maven,那么您可能有兴趣将以下内容添加到pom中。xml
文件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgument>-XDignore.symbol.file</compilerArgument>
</configuration>
</plugin>
这种特殊的警告是无法抑制的。至少不是正式的。
关于专有API的警告意味着您不应该使用导致警告的API。Sun不支持此类API,并且警告将不可抑制。
如果您特别确定,可以使用高度非文档化的javac-XDignore。象征file
标志,它将根据Sun的内部rt.jar
而不是面向公众的符号文件ct编译程序。sym
rt.jar
不会产生此警告。
问题内容: 当我使用JDK 1.7.0在OS X上编译Spring JDBC源代码时,收到以下警告: 如何在编译期间禁止显示警告消息? 我已经知道并使用Java的@SuppressWarning注释。我正在寻找特定的用法来抑制我所描述的警告。 我的问题特别是在以下代码行中: 应该用“ valuegoeshere”替换什么? 编辑:人们,我知道最好避免导致警告的代码。通常这就是我的方法。但是,我在这
你有什么想法吗? 让我们说它不是关键的,只是一个警告,但我担心它可能来自于一些错误,这些错误不是直接表现出来的,而是以某种方式引起的,让我们称之为,这种附带效应…
当我运行此代码时,我看到以下警告。为什么以及如何避免这种情况?
我试图解决这个问题,但我从来没有找到一个对我有效的解决办法。问题是我得到了关于Base64Encoder的警告。没有Base64Encoder还有其他方法可以做到这一点吗? 代码:
在项目建设过程中,我们收到了一个无法解释的警告: 附加信息: Apache Ant(TM)1.8.4版于2012年5月22日编译 Java(TM)SE运行时环境(build 1.7.0_25-b16) 有人能解释一下为什么编译器会发出这个警告,以及我应该做些什么来避免它吗? [编辑]添加了附近的代码 [编辑]由于有不少人要求提供信息源,我将其附在这里(24小时后过期):http://pastebi