java - 以 Java 6 为目标并使用 JDK 7 编译器时如何抑制引导类路径警告

标签 java javac

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

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

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

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

最佳答案

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

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

关于java - 以 Java 6 为目标并使用 JDK 7 编译器时如何抑制引导类路径警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16858415/

相关文章:

java - 在 Java 中创建的对象数量

java - java中是否可以将变量的值从一个类移动到另一个类而无需继承?

java - 注释约定

java - 使用 DBLINK 时在 Oracle 上出错

Java 错误 : class, 接口(interface),或需要枚举

java - Java命令提示符编译错误

java - 如何导出我的java程序并在其他计算机上打开它? (使用Eclipse)

即使在设置变量路径后,Javac 也无法识别,Windows 10?

java - 如何将 JDK6 ToolProvider 和 JavaCompiler 与上下文类加载器一起使用?

java - 解析javac编译错误