JRebel allows for newly compiled code to be redeployed without restarting the application. I am wondering if there are any alternative (free?). The FAQ page answers this question, but I am sure it's biased towards JRebel. This question was asked a year ago on this site, but I am bringing it back up to see if anyone has any new information.
On a side note, I really like JRebel, but if there is a free alternative, I am willing to try it.
One additional note, I am working on an open source project, and they offer free one year licenses to people who can prove they are on an open source project. Which works great for me (www.kuali.org), but I won't be on that project forever.
Take a look at DCEVM, it's a modification of the HotSpot VM that allows unlimited class redefinitions at runtime. You can add/remove fields and methods and change the super types of a class at runtime.
The binaries available on the original site are limited to Java 6u25 and to early versions of Java 7. The project has been forked on Github and supports recent versions of Java 7 and 8. The maintainer provides binaries for 32/64 bits VMs on Windows/Linux. Starting with Java 11 the project moved to a new GitHub repository and now also provides binaries for OS X.
DCEVM is packaged for Debian and Ubuntu, it's conveniently integrated with OpenJDK and can be invoked with java -dcevm
. The name of the package depends on the version of the default JDK: