java 8 兼容,从Java 9到Java 8的兼容性和迁移

本文介绍了Java 9的新模块系统,并着重讨论了从Java 8迁移到Java 9时的兼容性问题。当一个采用模块化方式编写的Java 9 JAR应用在JDK 8运行时部署时,它将无法启动,因为Java应用不能在低于其构建版本的JRE上运行。不过,javac编译器支持跨版本编译,可以使用JDK 8来编译兼容Java 6的类文件。开发者应关注跨编译选项以确保代码能在不同版本的JRE上运行。
摘要由CSDN通过智能技术生成

I'm reading the document about the new Java 9 module system.

The paragraph 3 Compatibility & migration explains how to migrate code

from Java 8 to Java 9, but says nothing on how "migrate" or run an application

written in Java 9 to pre Java 9 runtimes.

So, if I have, say a JAR application written in a modularity way (every module has a module descriptor) what does happen if I deploy it on, i.e, a JDK 8 runtime?

解决方案

You cannot start a Java application with a JRE which is less than the one it is built for.

If you just use javac without any special options it will produces classes which do run on JREs equal or bigger than the one of the used JDK.

However javac supports cross compilation. You can use JDK 8 to compile JDK 6 compatible class files. Search for Cross-Compilation Options in the javac docs.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值