加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java 10编译的类可以在9上运行吗?

发布时间:2020-12-15 01:59:22 所属栏目:Java 来源:网络整理
导读:参见英文答案 Can Java 8 code be compiled to run on Java 7 JVM?????????????????????????????????????5个 ???????????? List of Java class file format major version numbers?????????????????????????????????????2个 如果我理解正确,Java 10的二进制
参见英文答案 > Can Java 8 code be compiled to run on Java 7 JVM?????????????????????????????????????5个
>???????????? List of Java class file format major version numbers?????????????????????????????????????2个
如果我理解正确,Java 10的二进制形式与Java 9完全相同,那么它不会产生任何问题.

我的假设是否正确?

解决方法

这与Java 10无关;规则与以往一样.

在每个Java版本中,类文件版本号都已递增.您可以在较新的Java运行时上运行较旧的类文件(您可以运行二十年前在Java 10上的Java 1.0下编译的文件!),但从未在真正的运行时运行较新的类文件. Java 10没有改变.

但是,如果您不使用自该版本以来引入的较新功能,则可以编译类以使它们在旧版本上运行.这通常由-source和-target开关完成:

// Run this on Java 8
javac -source 6 -target 6 Foo.java

并且您将获得将在Java 6及更高版本上运行的类文件. (源版本不能大于目标版本.)最近用更全面的–release选项替换了它:

javac --release 9

这不仅意味着-source 9和-target 9,而且编译器也会阻止你使用9之后引入的JDK功能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读