无法阻止ant生成编译器Sun专有的API警告

Dan*_*iel 11 java ant warnings javac

我从我的蚂蚁脚本中调用javac,如下所示:

<javac srcdir="src" 
   destdir="build/classes" source="1.6" 
   target="1.6" debug="true" encoding="Cp1252"
   nowarn="true"> 
Run Code Online (Sandbox Code Playgroud)

但它仍然会在输出中抛出编译器警告:

[javac] Compiling 73 source files to C:\IKOfficeRoot\Java\ERP\Framework\build\classes

[javac] C:\IKOfficeRoot\Java\ERP\Framework\src\de\ikoffice\util\LoggerFactory.java:49: warning: sun.reflect.Reflection is Sun proprietary API and may be removed in a future release
[javac]         return Logger.getLogger(Reflection.getCallerClass(2));
[javac]                                 ^
[javac] Note: C:\IKOfficeRoot\Java\ERP\Framework\src\de\ikoffice\db\SingleShotResultSet.java uses or overrides a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 1 warning
Run Code Online (Sandbox Code Playgroud)

我也试过了

<compilerarg line="-Xlint:-unchecked -Xlint:-deprecation"/>
Run Code Online (Sandbox Code Playgroud)

<compilerarg value="-Xlint:none"/>
Run Code Online (Sandbox Code Playgroud)

但这也没有效果.如何删除警告?

小智 14

-XDignore.symbol.file选项添加到javac命令行为我工作.


Alu*_*lun 5

最好的方法是使用sunapi抑制,即-Xlint:-sunapi在整个编译过程中或@SuppressWarnings("sunapi")在所需范围内使用抑制。

请注意,不过,使用此抑制的唯一方法是首先使用编译器选项启用它 -XDenableSunApiLintControl

enableSunApiLintControl