Alibaba Dragonwell8 : The In-house OpenJDK Implementation At Alibaba

Alibaba requires no introduction. It is one of the popular and largest multinational conglomerate founded by Jack Ma, a business magnate and philanthropist from China. It is also world’s fifth-largest internet company by revenue. It specializes in various sectors such as e-commerce, retail, Internet and technology. Alibaba team has provided significant contribution to open source projects. One such project is OpenJDK. The development team at Alibaba has developed many Java-based applications over the years. They have adopted OpenJDK and created their own JDK named “Alibaba Dragonwell8”. It is the downstream version of OpenJDK and completely open source.

Alibaba Dragonwell is optimized for developing e-commerce, financial, logistics applications which are running on their 100k+ servers. It is certified as compatible with the Java SE standard. It is currently supports Linux/x86_64 platform only. Let us hope they will extend the support to Unix and other platforms soon. In this guide, we will see how to install Alibaba Dragonwell8 in Linux. I have tested this guide on Ubuntu 18.04 LTS server. However, it should work on other Linux distributions as well.

Install Alibaba Dragonwell8 in Linux

Download the latest Dragonwell JDK from the releases page.

$ wget https://github.com/alibaba/dragonwell8/releases/download/8.0-preview/Alibaba_Dragonwell8_Linux_x64_8.0-preview.tar.gz

Create a directory for the Java installation:

$ sudo mkdir /usr/local/dragonwell8

As of writing the guide, the latest version was 8, hence I created a directory named “dragonwell8”. You can name it as you wish.

Next, extract the download tar archive to dragonwell8 directory using command:

$ sudo tar -zxf Alibaba_Dragonwell8_Linux_x64_8.0-preview.tar.gz -C /usr/local/dragonwell8/

Next, run the following commands to set Dragonwell as the default JVM in your Linux system:

$ sudo update-alternatives --install /usr/bin/java java /usr/local/dragonwell8/j2sdk-image/bin/java 100
$ sudo update-alternatives --install /usr/bin/javac javac /usr/local/dragonwell8/j2sdk-image/bin/javac 100

If you have multiple Java installations, run the following command to select your default java version by choosing a respective version number.

$ sudo update-alternatives --config java

Finally, check the current JDK version using command:

$ java -version
openjdk version "1.8.0_202"
OpenJDK Runtime Environment (Dragonwell 8.0-preview) (build 1.8.0_202-b30)
OpenJDK 64-Bit Server VM (Dragonwell 8.0-preview) (build 25.202-b30, mixed mode)

Alternatively, you can check the Java version using the following commands as well.

$ update-alternatives --display java

Sample output:

java - auto mode
link best version is /usr/local/dragonwell8/j2sdk-image/bin/java
link currently points to /usr/local/dragonwell8/j2sdk-image/bin/java
link java is /usr/bin/java
/usr/local/dragonwell8/j2sdk-image/bin/java - priority 100

To enable Alibaba Dragonwell JDK for your application, simply set JAVA_HOME to point to the installation directory of Alibaba Dragonwell.

To do so, open /etc/environment file in any text editor:

$ sudo nano /etc/environment

Add the following line:

JAVA_HOME="/usr/local/dragonwell8/j2sdk-image/"

Make sure you replaced the path with your preferred Java version. Save and close the file. Update the changes using command:

$ source /etc/environment

Verify JAVA_HOME variable using command:

$ echo $JAVA_HOME

Sample output would be:

/usr/local/dragonwell8/j2sdk-image/

Congratulations! You have now successfully installed the Alibaba Dragonwell JDK on your system. Start developing your Java applications!


Related read:


Update Alibaba Dragonwell

To update Alibaba Dragonwell in future, simply download the latest available version, extract it to the Java installation directory and make it as default Java with a higher priority number, for example 110.

$ sudo update-alternatives --install /usr/bin/java java /usr/local/<dragonwell_new_version>/bin/java 110
$ sudo update-alternatives --install /usr/bin/javac javac /usr/local/<dragonwell_new_version>/bin/javac 110

Finally, remove the older version if it is not required anymore as shown below.

$ sudo update-alternatives --remove java /usr/local/<dragonwell_old_version>/bin/java
$ sudo update-alternatives --remove javac /usr/local/<dragonwell_old_version>/bin/javac
$ sudo rm -rf /usr/local/<dragonwell_old_version>/

And, that’s all for now. Hope this was useful. I will be soon here with another interesting topic. Stay tuned!

Cheers!

Est quasi vel quo atque dolore rerum voluptatem. Dignissimos voluptates officia quasi culpa molestiae consequatur. Reiciendis et blanditiis vitae accusamus quas. Saepe dolores et commodi ut non odio ex. Cum quas doloremque ducimus temporibus voluptate ut dolorem. Et maxime aut exercitationem voluptate. Vel quos voluptatem esse iure illo maiores ducimus. Voluptatum nam ex accusantium quaerat nulla. Earum recusandae sunt sed ipsa rerum fugiat iusto. Delectus sit consequatur dicta autem iste.

Leave a Reply

Your email address will not be published. Required fields are marked *