Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.
See all our reports

JRebel 101: What JRebel is and how it makes Java development lightning fast

If you’re curious about getting started with JRebel, check out the recording of our ZT Master Class: Intro to JRebel for a demonstration and overview of the basics plus some great Q&A!

LEARN MORE


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 41 Java web & server-side frameworks (as of Nov 2011)

Is your team using Spring, Hibernate, Struts, JSF, JSP or Seam? JRebel supports a total of 41 different Java frameworks Here is a list:
http://zeroturnaround.com/jrebel/features/frameworks/

JRebel supports various app servers/containers

Which do you use most?

  • Oracle WebLogic
  • WebSphere
  • Tomcat
  • JBoss
  • GlassFish
  • Jetty
  • Resin
  • Google AppEngine
  • SAP NetWeaver
  • SpringSourceDM Server (Eclipse Virgo)
  • Oracle OC4J
  • Mulesoft tcat server

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?

  • Harry

    Thanks for the short quick informative description.
    I hope next time you meet someone will thank you for this post