java 8 jre_为什么如今的 JRE 最新版本是 8,而 JDK 已经是 13 了?

这个跟java 9提供的jigsaw有关

先说第一点,你应该避免使用oracle jdk而应该使用open jdk,去openjdk.java.net上下载,而不是java.com上下载

因为oracle jdk顾名思义,是oracle的版权产品,open jdk免费开源的真jdk

9之后的jdk,已经模块化了,模块化之后,就不再区分jvm,jre和jdk了

过去jvm是jre的子集,jre对比jvm多了rt.jar标准包的内容

而jre是jdk的子集,jdk对比jre多了javac等工具

那么9的jigsaw之后,所有这些,都被拆成了一个又一个jmod,模块

比如java.base.jmod,jdk.javac.jmod等

那用户可以根据自身需要,自由组合出自己的runtime,而这个runtime可能是jdk

也可能是jre+jdk的一部分,也可能是jre的一部分+jdk的一部分,或者干脆就只有jvm的一部分

而且用户可以添加第三方提供的native扩展,比如常见的两个扩展是javafx(gui)和graal(多语言)扩展,graal 19.3多语言扩展将会在2019的11月19日发布,到时候你可以利用该工具扩展出支持javascript,python,ruby,r等语言的运行时(runtime),javafx等下说

甚至java提供了jaotc可以将整个runtime精简,做成binary二进制机器码,就跟c等语言一样了

所以这个时候再提供jre就毫无意义了,因为这跟以前你拿一个jar出来,然后所有有jre的地方都能运行不一样了

如果你的jar依赖的jmod不在你自己做的runtime里面,那还是运行不了

所以就不再提供jre了,你需要的话,用jlink自己制作runtime

参考我的专栏文章:圆胖肿:我的Java(定制你的Java/JavaFX Runtime)​zhuanlan.zhihu.com296ef0fc9e2a7b237d36478c33d18056.png

这篇专栏文章中介绍了如何定制一个java的runtime的子集,同时添加了gui的扩展

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值