我们的开源应用程序面向Java 6平台,因此我们使用-source 1.6和-target 1.6选项进行编译,但在使用JDK 7时,我们会收到此警告消息,例如
例如: $ javac -source 1.6 -target 1.6 test.java
警告:[options] bootstrap类路径未与-source 1.6一起设置
我们可以通过为我们的机器使用-bootclasspath解决问题,但我们将应用程序作为源tarball / zip分发,我们的用户在他们的机器上构建它。
此外,我们不希望要求用户下载JDK6,因此他们不会收到此警告,因此-bootclasspath选项不是一个好的解决方案。
当然我们通过使用和测试JDK 6来验证我们只使用JDK 6 API。所以我们只想在使用JDK 7编译源代码时禁止这个警告。
我已经扫描了javac选项,但无法找到如何抑制此警告。 http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html
关于如何在定位Java 6时抑制JDK 7的引导类路径警告的任何想法?
现在我们只是告诉我们的用户忽略这一点,但理想情况下,我们不希望打印任何警告。
答案 0 :(得分:5)
可以使用-Xlint系列中的新JDK 7子选项禁用警告:-Xlint:-options。 e.g。
$ javac -source 1.6 -target 1.6 -Xlint:-options test.java
来源:https://blogs.oracle.com/darcy/entry/bootclasspath_older_source 和 http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#xlintwarnings
可以使用-Xlint选项启用或禁用的警告
使用-Xlint:name选项启用警告名称,其中name是以下警告名称之一。同样,您可以使用-Xlint选项禁用警告名称:-name:...
选项警告有关使用命令行选项的问题。有关此类警告的示例,请参阅交叉编译示例。