Installing the JRockit Java Virtual Machine under Ubuntu

Posted by marian on October 24, 2009

Does Eclipse run slow, or Netbeans consumes a lot of memory ?
Here is a solution, well a partial one since the memory consumption still remains: change the Eclipse’s Java VM or Netbeans Java VM with Oracle’s Java VM called JRockit and you’ll see a performance boost.
It is free, it is big and not so easy to tune, but it is fast.
First of all there are two flavors of the Oracle’s Java VM:

  • Oracle JRockit Mission Control
  • Oracle JRockit Real Time

I personally prefer Oracle JRockit Real Time. You can make up your mind by reading http://www.oracle.com/technology/software/products/jrockit/FAQ.htm
As a big plus you are not required to provide any information about yourself, such as e-mail (as others require) when downloading the installation kit.
After you have it, lets say it is jrrt-3.1.2-1.6.0-linux-x64.bin, you must make it executable:

  1. chmod +x

and then execute it (version of the kit used for testing is highlighted) :

  1. sudo ./jrrt-3.1.2-1.6.0-linux-x64.bin

You can install it in a number of locations, such as under /usr/lib/jvm , or /usr/lib64. Although this Java Virtual Machine is on 64 bits, I prefer the first location (although to the end, due to simlinks it doesn’t matter).
Then you perform a simlink to it :

  1. ln -s /usr/lib64/jvm/jrrt-3.1.2-1.6.0 /usr/lib/jvm/java-6-jrockit

The naming java-6-jrockit is needed by the update-alternatives in order to discover it.
Next you use the update-alternatives to notify the programming environment about its existence (a very very big minus, since Sun’s Java VM does it automatically):

update-alternatives -- install /usr/bin/java java /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/java 64
update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jar 64
update-alternatives --install /usr/bin/jarsigner jarsigner /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jarsigner 64
update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/javadoc 64
update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/javah 64
update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/javap 64
update-alternatives --install /usr/bin/jconsole jconsole /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jconsole 64
update-alternatives --install /usr/bin/jdb jdb /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jdb 64
update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jps 64
update-alternatives --install /usr/bin/rmiregistry rmiregistry /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/rmi 64
update-alternatives --install /usr/bin/appletviewer appletviewer /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/appletviewer 64
update-alternatives --install /usr/bin/apt apt /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/apt 64
update-alternatives --install /usr/bin/extcheck extcheck /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/extcheck 64
update-alternatives --install /usr/bin/idlj idlj /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/idlj 64
update-alternatives --install /usr/bin/jrunscript jrunscript /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jrunscript 64
update-alternatives --install /usr/bin/jstat jstat /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jstat 64
update-alternatives --install /usr/bin/jstatd jstatd /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jstatd 64
update-alternatives --install /usr/bin/native2ascii native2ascii /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/native2ascii 64
update-alternatives --install /usr/bin/rmic rmic /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/rmic 64
update-alternatives --install /usr/bin/schemagen schemagen /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/schemagen 64
update-alternatives --install /usr/bin/serialver serialver /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/serialver 64
update-alternatives --install /usr/bin/wsgen wsgen /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/wsgen 64
update-alternatives --install /usr/bin/wsimport wsimport /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/wsimport 64
update-alternatives --install /usr/bin/xjc xjc /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/xjc 64
update-alternatives --install /usr/bin/keytool keytool /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/keytool 64
update-alternatives --install /usr/bin/orbd orbd /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/orbd 64
update-alternatives --install /usr/bin/pack200 pack200 /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/pack200 64
update-alternatives --install /usr/bin/policytool policytool /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/policytool 64
update-alternatives --install /usr/bin/rmid rmid /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/rmid 64
update-alternatives --install /usr/bin/servertool servertool /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/servertool 64
update-alternatives --install /usr/bin/tnameserv tnameserv /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/tnameserv 64
update-alternatives --install /usr/bin/unpack200 unpack200 /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/unpack200 64

This being done you can now safely change the default Java VM :

sudo update-alternatives --config java

There are 5 alternatives which provide `java'.

  Selection    Alternative
-----------------------------------------------
          1    /usr/lib/jvm/java-6-sun/jre/bin/java
          2    /usr/bin/gij-4.2
          3    /usr/bin/gij-4.3
*+     4    /usr/lib/jvm/java-gcj/jre/bin/java
          5    /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/java
Press enter to keep the default[*], or type selection number: 5

If the change is successful, on a new call should look like:

sudo update-alternatives --config java
There are 5 alternatives which provide `java'.

  Selection    Alternative
-----------------------------------------------
          1    /usr/lib/jvm/java-6-sun/jre/bin/java
          2    /usr/bin/gij-4.2
          3    /usr/bin/gij-4.3
* +    4    /usr/lib/jvm/java-gcj/jre/bin/java
          5    /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/java
Press enter to keep the default[*], or type selection number: 5

Just press CTRL–C and go forward with:

sudo update-alternatives --config javac
There are 5 alternatives which provide `javac'.

  Selection    Alternative
-----------------------------------------------
          1    /usr/lib/jvm/java-6-sun/bin/javac
          2    /usr/bin/ecj
          3    /usr/bin/gcj-wrapper-4.3
*+     4    /usr/lib/jvm/java-gcj/bin/javac
          5    /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/javac

Press enter to keep the default[*], or type selection number: 5

sudo update-alternatives --config jar

There are 5 alternatives which provide `jar'.

  Selection    Alternative
-----------------------------------------------
          1    /usr/lib/jvm/java-6-sun/bin/jar
          2    /usr/bin/fastjar
 *+    3    /usr/lib/jvm/java-gcj/jre/bin/jar
          4    /usr/bin/gjar-4.3
          5    /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jar

Press enter to keep the default[*], or type selection number: 5

JRockit proves a good way to boost the performance of you development environment, both on Eclipse and Netbeans. Its performance can be seen especially when you are developing web application, and you are using Apache Tomcat.

Trackbacks

Use this link to trackback from your own site.

Comments

You must be logged in to leave a response.