如何在定位Java 6和使用JDK 7编译器时抑制引导类路径警告

Neo*_*eon 5 java javac

我们的开源应用程序面向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的引导类路径警告的任何想法?

现在我们只是告诉我们的用户忽略这一点,但理想情况下,我们根本不希望打印任何警告.

Neo*_*eon 5

可以使用-Xlint系列中的新JDK 7子选项-Xlint:-options禁用警告.例如

$ javac -source 1.6 -target 1.6 -Xlint:-options test.java

来源:https://blogs.oracle.com/darcy/entry/bootclasspath_older_sourcehttp://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#xlintwarnings

可以使用-Xlint选项启用或禁用的警告

使用-Xlint:name选项启用警告名称,其中name是以下警告名称之一.同样,您可以使用-Xlint选项禁用警告名称:-name:...

选项警告与使用命令行选项有关的问题.有关此类警告的示例,请参阅交叉编译示例.