重新部署 JRebel 的备选项 [已关闭]

2022-08-31 06:25:01

JRebel 允许在不重新启动应用程序的情况下重新部署新编译的代码。我想知道是否有任何替代方案(免费?FAQ页面回答了这个问题,但我确信它偏向于JRebel。这个问题是一年前在这个网站上问过的,但我把它带回来,看看是否有人有任何新信息。

顺便说一句,我真的很喜欢JRebel,但如果有免费的替代品,我愿意尝试一下。

另外需要注意的是,我正在开发一个开源项目,他们为那些可以证明自己在开源项目上的人提供免费的一年许可证。这对我来说很好(www.kuali.org),但我不会永远参与这个项目。


答案 1

看看DCEVM,它是对HotSpot VM的修改,允许在运行时无限制地重新定义类。您可以在运行时添加/删除字段和方法,并更改类的超类型。

原始站点上可用的二进制文件仅限于 Java 6u25 和 Java 7 的早期版本。该项目已在Github上分叉,并支持最新版本的Java 7和8。维护者为 Windows/Linux 上的 32/64 位 VM 提供二进制文件。从Java 11开始,该项目转移到了一个新的GitHub存储库,现在还为OS X提供了二进制文件。

DCEVM是为Debian和Ubuntu打包的,它与OpenJDK集成在一起,可以用.包的名称取决于默认 JDK 的版本:java -dcevm


答案 2

Hotswap Agent是DCEVM的扩展,它支持许多Java框架(重新加载Spring Bean定义,Hibernate实体映射,记录器级别设置等)。

还有很多文档介绍如何为Java 1.7设置DCEVM和编译的二进制文件。


推荐