当前位置: 首页 > 知识库问答 >
问题:

如何在目标Java6和使用JDK7编译器时抑制自举类路径警告

温镜
2023-03-14

我们的开源应用程序以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

关于如何在目标Java6时抑制JDK 7的引导类路径警告,有什么想法吗?

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

共有1个答案

沈单弓
2023-03-14

可以使用-Xlint系列中的新JDK 7子选项禁用该警告,-Xlint:-选项。

xlint:-选项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:...

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

 类似资料:
  • 在我的应用程序中,我有一个由第三方开发的库,不幸的是,它包含相当多的lint和javac警告。我想忽略这两种类型的警告,因为它们无法由我们的团队修复,并且它们会污染我们的构建日志。我尝试将以下内容添加到库build.gradle文件中: 在Android块中 我还在build.gradle文件末尾添加了以下内容: 不幸的是,每当“:compileDebugJavaWithJavac”运行时,它仍然

  • 我应该启用哪些确切的gcc标志来获得此警告? 为什么将声明为volatile会抑制该警告?

  • 问题内容: 我们总是被教导要确保在switch语句中使用 break 来避免掉线。 Java编译器会针对这些情况发出警告,以帮助我们避免犯小错误(而是严重错误)。 但是,我将案例检查作为功能使用(我们不必在这里进行介绍,但是它提供了一种非常优雅的解决方案)。 但是,编译器会吐出大量警告,这些警告可能会掩盖我需要了解的警告。我知道如何更改编译器以忽略所有掉线警告,但是我想在逐个方法的基础上实施此操作

  • 我正在开发一个使用OpenCV和加速的C项目。不幸的是,在编译时,我的编译器从这些库的包含文件中给了我数百个警告。即使有一个空的主函数,没有其他代码,我仍然从包含语句中得到这些警告。我听说这是Qt等其他第三方库的问题。所有伟大的图书馆。如何抑制 MSVC 中的所有第三方警告。 我知道这些解决方案: 在GCC中:#pragma GCC system_header#include“real_3rd_p

  • 问题内容: 每次我都会收到警告: 抑制它的最佳方法是什么?所有软件包都是最新的。 Conf: OSX带有Brew Python 2.7.10(默认,2015年7月13日,12:05:58),pandas == 0.17.0和matplotlib == 1.5.0 问题答案: 您可以禁止所有警告:

  • 我想在Fedora 17上使用OpenJDK编译成Java 6。Fedora 17有OpenJDK7,而不是OpenJDK6。我可以使用-target 1.6-source 1.6从Java 7编译到Java 6,但要正确地进行编译(避免警告:[options]引导类路径未与-source 1.6一起设置),我还需要-bootclasspath指向Java 6 rt.jar文件。但是OpenJDK