use*_*217 5 java compilation backwards-compatibility cross-compiling
我安装了Java 7,但将我的项目JDK合规性设置为Java 6.不幸的是,这与使用Java 6进行编译不同.
例如,接口在Java 7中javax.imageio.stream.ImageInputStream
扩展,而Closable在Java 6中不是这种情况.在我的设置下使用ImageInputStreama a Closable期望编译正常(Java 7符合Java 6)但在使用Java 6时出现编译错误.这是假设这样吗?
sle*_*ske 10
为了编译旧JRE的Java代码,您需要做两件事:
你已经涵盖了第一点,但不是第二点,因此你的问题.
如何执行此操作取决于您的构建环境.
javac,使用选项-bootclasspath.示例:( javac -target 1.5 -bootclasspath jdk1.5.0/lib/rt.jar OldCode.java来自javac联机帮助页,"交叉编译选项"部分).您使用JDK合规性设置的主要是类格式.
类的字节码格式有几个演变.JDK可以使用以前的格式进行编译,而VM无法执行以更新格式编译的类.
但是使用的库总是您用于执行的JDK中可用的库.JDK 6版本的javax.imageio.stream.ImageInputStream未与Java 7捆绑在一起.
| 归档时间: | 
 | 
| 查看次数: | 248 次 | 
| 最近记录: |