要从javac
JDK 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
子选项被记录为构建过程的一部分。
新闻热点
疑难解答