Features
JavaRebel is a developer tool that will reload changes to compiled Java classes on-the-fly saving the time that it takes to redeploy an application or perform a container restart. It is a generic solution that works for Java EE and Java standalone applications.
JavaRebel installs as a JVM plugin (-javaagent) and works by monitoring the timestamp of class files. When it is updated (e.g. when a developer saves a class from the IDE) JavaRebel will reload the changes to class code and structure while preserving all existing class instances. The following table details the type of changes to classes supported as compared to the usual debug-mode hot code reloading (referred to as HotSwap):
| Sun JVM HotSwap | JavaRebel | |
| Changing method bodies | |
|
| Adding/removing methods | |
|
| Adding/removing constructors | |
|
| Adding/removing fields | |
|
| Adding/removing classes | |
|
| Adding/removing annotations | |
|
| Changing interfaces | |
|
| Replacing superclass | |
|
| Adding/removing implemented interfaces | |
|
Supported JVMs
- Sun Java 1.4.x
- Sun Java 5.x
- Sun Java 6.x
- JRockit JVM 8.1sp6 or later
- JRockit JVM 9.x 1.5.0_06 or later
- IBM J9 1.4.x
- IBM J9 5.x
- IBM J9 6.x
- Apple MRJ 5.x
- Apple MRJ 1.4.x
- Apple MRJ 5.x
Supported Containers:
- BEA Weblogic 8.x, 9.x, 10.x
- GlassFish v2
- Oracle OC4J 9.x, 10.x
- Tomcat 4.x, 5.x, 6.x
- JBoss 3.x, 4.x (on Java 5 or later)
- Jetty 5.x, 6.x (on Java 5 or later)
- Equinox OSGi (including Eclipse plugins)
- IntelliJ IDEA plugins


