JDK 8中的高级代码热插拔?

我在JavaVM中寻找更好的HotSwapping。 能够仅应用方法体改变是可以的,但是非常有限。

可用选项是JRebel和一个名为动态代码演进虚拟机(DCEVM)的已停产项目。

那里有一个由DCEVM的核心开发者编写的JEP 159 。 2011年的博客文章提到,DCEVM的开发人员现在可以在Oracle中将其集成到JDK中。

我们是否已经对JDK 8 beta有这种支持,还是推迟到JDK 9?

我需要热插拔来添加和删除以及重命名私有方法。 这会有很多帮助。 有没有一个产品允许我这样做(在JRebel旁边哪些公关活动让我心烦意乱)。

最后支持的DCEVM版本适用于1.6u24,它只提供32位Linux二进制文件。 由于我使用1.7和64位Linux,这对我来说都是一个显示阻止。

github上还有另一个名为Fakereplace的项目。 这可以很容易地用于我的目的,还是我不应该调查这个?

在Github上的存储库中维护了一个DCEVM分支。 它最近更新为Java 8.二进制文件可通过GitHub版本或下载页面获得 。

对于简单的事情,比如添加/删除方法,它应该非常可靠(通过16种不同配置的自动化测试validation)。 但是,它最终仍然可能导致JVM崩溃,因此绝不应该在生产中使用它。

本页列出了JDK 8和JDK 9的JEP。 JEP-159不在其中。 从jep索引可以看出JEP-159还没有针对任何JDK版本,甚至不是jdk 10。

JEP-159状态目前为“已提交” 。 该过程描述如下:

成功的JEP通过以下状态:

  • 草案 – 作者在流通中进行初步审查和建立共识
  • 发布 – 作者进入JEP档案进行更广泛的审核
  • 提交 – 作者宣布准备进行评估
  • 候选人 – 接受OpenJDK Lead列入路线图
  • 资助 – 由集团或地区负责人评定为资金充足
  • 完成 – 完成并交付

所以它还没有被任何路线图所接受。