没有JRE的新JDK 12?这是如何运作的?

时间:2019-08-27 20:06:17

标签: java

很长一段时间以来,我已经能够很简洁地解释和分离jdk和JRE的概念。 jdk是为开发人员准备的,只有在您打算进行开发时才需要它。JRE本质上是与Java虚拟机关联的资源,任何想要运行Java的人都需要它,无论他们是否是开发人员。

现在,在我读过的所有地方,人们都在告诉其他人他们不需要JRE,并且jdk包含了所有必要的东西。因此,我最初的想法是jdk附带了虚拟机和运行Java所需的所有库。很好。

但是,我很难理解普通用户当时的体验。我在通知区域中看到了我自己的设备上对Java的更新,并且我认识了许多在计算机和其他非开发人员设备上运行Java的人。

话虽如此,如果没有JRE,他们现在到底要更新什么?他们必须在计算机上安装Java虚拟机才能运行Java,对吗?新的虚拟机是否运行用jdk 12编写的软件?具体来说,我假设它必须与openjdk 12兼容?

这些更改有些令人困惑,因此我试图找出你们中是否有人对此有所了解。

谢谢!

1 个答案:

答案 0 :(得分:1)

大概是因为他们正在修订开发环境的一个或多个方面,但不需要更改JRE。

我可以想到的一个示例是修补javac ...输出可能在以前的JRE上仍然可以正常工作,但是可以将javac更改为产生更有效的字节码或修补某些安全漏洞。

这些人自己并不认为我值得“大转机”,但这很可能是一项营销决定,而不是技术决定。

编辑:实际更改列表: https://openjdk.java.net/projects/jdk/12/

  • GC Thing(实验性)
  • 标杆事物
  • 开关/大小写的新语法(看起来像lamda switch(foo) {case bar, baz -> qux();}
  • “ JVM常量API”?那怎么不是JRE的东西? (编辑:可能是该API已经存在,但现在已经公开)
  • 放弃对ARM上两个64位体系结构之一的支持。不必要的冗余就是不必要的冗余。
  • “默认CDS存档” CDS:类数据共享更有效的反映吗?
  • “ G1的可终止混合集合”
  • “立即从G1返回未使用的承诺内存”