This post was modified from its original version, we’ve rewritten it to be more precise and updated it with the fresh information.

“JRebel? Yeah, I heard of that…” – Rupert, conference attendee

One of the best things about the Devoxx Java Conference in Antwerp each year, is that even after our 5th time going there we still meet lots of new developers who aren’t quite sure what JRebel actually is. They might have heard different speakers mention it during their talks as being helpful for speeding up development, or saw the ZeroTurnaround team at the booth in the exhibition hall, or just ran into someone wearing a new JRebel t-shirt in the beer line.

Now seems like a good opportunity to set the record straight. The next time I hear a dev say, “Why the heck is Java so slow? Why is my application restart so long? Isn’t this supposed to be the future?”, I will have a nice blag post to refer to :-)

What does JRebel do?

JRebel lets Java developers instantly update code (i.e. add a new feature, fix a bug, etc) and see those changes reflected in their app under development without restarting the application server. According to our Java EE Productivity Report 2011, this process that takes an average of 10.5 minutes each coding hour for every developer (that’s over 5 full work weeks each year!)

Bottom line: JRebel users tell us that Java development is more fun, iterative and productive–similar to coding in PHP, Python, Ruby and other scripting languages.

What does JRebel do (from a technical perspective)?

JRebel uses “Rebellion Technology” to instantly reload changes made to a class structure, making a full app redeploy unnecessary. You just save, refresh and see the changes right away. To achieve this, it does not wrap classloaders around classes, but patches existing classloaders to make classes loaded through them reloadable using instrumentation. JRebel tracks changes that you make in your workspace, and updates them on-the-fly, so you can keep focused on the code and stay in the zone without interruption. (JRebel helps people quit smoking this way!) — super-technical content on Classloaders can be found here.

JRebel is a plugin for anything Java

JRebel plugs in to different JVMs, most popularly Oracle’s JVM (formerly Sun’s)

JRebel plugs in to your IDE

JRebel is a -javaagent

JRebel supports Java EE and Java SE

JRebel : Hotswap :: Ferrari : Lawnmower

JRebel is a Java jedi. Unlike HotSwap, which supports only changes to method bodies, JRebel supports:

Adding / removing / changing Classes

Adding / removing / changing Methods

Adding / removing / changing Constructors

Adding / removing / changing Fields

Adding / removing / changing Annotations

Adding / removing / changing Static field values

JRebel also rocks out with instant builds and Java EE support (see all the JRebel features). So if your project is more like a race than a weekend lawn manicure, then JRebel is a clear winner over Hotswap.

JRebel is IDE neutral

Using some weird IDE? Not using an IDE? No matter … JRebel works. Here are links for the 6 most popular IDEs in Java:

JRebel supports various app servers/containers

Using something not on the list above? Email us at support@zeroturnaround.com to see how JRebel can work for you.

JRebel supports your complete technology stack…no switching needed

With JRebel, you don’t have to change to another IDE, app server or framework. You keep using the tools you know best, and JRebel does the rest from behind the scenes.

Does JRebel work for mobile apps?

JRebel for Mobile App Development (Android, Java ME) is under investigation…stay tuned! Although we’ve heard that long redeploys are not such an issue for Mobile App devs, we’ve been told that the build phase can be very annoying…we will be investigating the use of JRebel for mobile app development in 2012, so we’ll update you soon.

Ever wanted to show JRebel to other devs, bosses and statistics fans?

The former Indian leg-wrestling champion of his home town, Oliver joined the ZeroTurnaround team in 2010 as the tiny startup's first marketing employee. While not a developer himself, he is inexplicably talented at finding code errors that somehow appear in RebelLabs articles. Oliver likes reading, writing and 'rithmatic, as well as music, films, dogs, steaks, gazing at world maps and strolling through the deeply-forested parks of the Czech Republic, where he lives. Say hi on Twitter @theotown