JRuby is the Ruby implementation that runs on a JVM whereas Matz’s Ruby is a C implementation.
Key features to note are:
- JRuby runs on Java VM’s and it’s either compiled or interpreted down to Java byte code.
- JRuby can integrate with Java code. If you have Java class libraries (.jar’s), you can reference and use them from within Ruby code with JRuby. In the other direction you can also call JRuby code from within Java. JRuby can also use the JVM and application server capabilities.
- JRuby is usually hosted within Java application servers such as Sun’s GlassFish or even the Tomcat web server.
- Although you cannot use native Ruby gems with JRuby there are JRuby implementations for most of the popular Ruby libraries.
There are other differences which are listed at the JRuby wiki: