新的javac警告,用于设置没有bootclasspath的旧源
2010年12月21日达西 - 甲骨文
要从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子选项被记录为构建过程的一部分。
本文介绍了在使用javac进行跨平台编译时如何正确设置旧源版本和bootclasspath,以确保生成的类文件能在目标平台上正常运行。文章还讨论了不正确设置可能导致的问题及警告信息。

398

被折叠的 条评论
为什么被折叠?



