For Java SE there are several JVM’s available for running in production on x86:
- IBM J9
- Oracle JRockit – http://www.oracle.com/technology/products/jrockit/index.html
- Apache Harmony – http://harmony.apache.org/
- The one in OS X (if a Mac) which appears to be Sun with Aqua Swing.
- OpenJDK
plus some custom offerings for running on a server:
- Azul – http://www.azulsystems.com/
- Google App Engine Java – http://code.google.com/intl/da/appengine/docs/java/overview.html
Other platforms:
- Sun Solaris JVM – better scalability than x86?
- (edit) GNU compiler for Java – http://gcc.gnu.org/java/ – can compile to native code on multiple platforms.
The Sun JVM has a distinct advantage with the jvisualvm program, which allows runtime inspection of running code. Is there any technical advantages of any other JVM that might make it a better choice for development and/or production?
In other words, is there a killer facility or scenario that would make any investment of time/effort/money worth it in another JVM?
(Please also suggest additional JVM’s if they would be a good choice).
JRockit comes with JRockit Mission Control, which is a tools suite you can use to monitor the JVM and your application. You can download it here, it’s free to use for development.
Mission Control has a lot of features that VisualVM is missing, for instance an online memory leak detector, a latency analyzer, Eclipse integration, JMX.logging to file. etc. If you want to compare VisualVM with Mission Control here are the release notes and the documentation for the latest version.