5

我们的开源应用程序针对 Java 6 平台,因此我们使用 -source 1.6 和 -target 1.6 选项进行编译,但是在使用 JDK 7 时,我们会收到此警告消息,例如

例如: $ javac -source 1.6 -target 1.6 test.java

警告:[选项] 引导类路径未与 -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 的引导类路径警告的任何想法?

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

4

1 回答 1

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_source 和 http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#xlintwarnings

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

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

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

于 2013-05-31T13:43:49.743 回答