I recently came across a free JRebel alternative called DCEVM. In short, DCEVM is a patched Java Virtual Machine that allows you to dynamically replace code fragments in the running application. Unlike the standard JVM which is capable to only replace method bodies, DCEVM “allows adding and removing fields and methods as well as changes to the super types of a class” without restarting an application. It should be especially beneficial for web application developers due to the fact that changes made to the code often lead to restarting a whole application container which usually not instant. I have recently used it for developing a quite large Swing application and it exhibited good performance and stability making my development and debugging experience considerably smoother.
There are two versions of DCEVM available: full and light. The full version supports more features but not as up-to-date as the light version.
DCEVM is completely free.
You can get it here: https://github.com/dcevm/dcevm