分析bootstrap class path not set in conjunction with -source 1.6

来源:互联网 发布:编程验证歌德巴赫猜想 编辑:程序博客网 时间:2024/06/05 17:06

新的javac警告,用于设置没有bootclasspath的旧源

要从javacJDK N用于交叉编译器到较旧的平台版本,正确的做法是:

  • 使用较旧的-source设置。
  • 设置bootclasspath为针对rt.jar较旧平台的(或等效的)编译。

如果采取第二步,javac将尽职使用旧语言规则与新库结合,这可能导致类文件不能在旧平台上工作,因为可以包括对不存在的方法的引用。

感谢Jon Gibbons的工作,在JDK 7 build 121和以后javac检测和警告这种可疑情况; 例如:

$ javac -source 6 HelloWorld.java 警告:[options] bootstrap类路径未与-source 1.6一起设置

解决警告的一种方法是设置bootclasspath。如果这是不适当的,警告可以禁用在-Xlint家庭内的新子选项-Xlint:-options

有了这种变化,可能javac会导致微妙构建错误的可能有问题的选项组合被编译器诊断,并且可以通过直接寻址或通过新的-Xlint子选项被记录为构建过程的一部分。

0 0