Ubuntu Linux: Install Latest Oracle Java 7

by on May 16, 2013 · 25 comments· LAST UPDATED May 16, 2013

in ,

I am a network admin who recently made the switch from MS-Windows to Ubuntu Linux. I need to use Java and Firefox web browser plugin to run java applet. I am unable to access many devices such as Firewall appliance, LBS/VPX, and network equipments due to Ubuntu's incompatible openjdk and icedtea plugin. I also searched software center but unable to find Oracle Java 7. How do I install Oracle Java 7 and get rid of this incompatibility problems on Ubuntu Linux amd64 v12.04 LTS or v13.04+?

Tutorial details
DifficultyIntermediate (rss)
Root privilegesYes
Requirementsapt-get/tar/ln
Estimated completion timeN/A
Debian / Ubuntu and much other Linux distros are switching to OpenJDK (Open Java Development Kit). It is a free and open source implementation of the Java Platform, Standard Edition (Java SE). OpenJDK is the official Java SE 7 reference implementation and following packages are installed on Ubuntu Linux:

  1. openjdk-7-jdk - OpenJDK Development Kit (JDK)
  2. openjdk-7-jre - OpenJDK Java runtime, using Hotspot JIT
  3. icedtea-plugin - web browser plugin to execute Java applets (dependency package)

Find out installed JDK

To list all currently installed java implementation on the system, enter:
$ dpkg --list | grep jdk
Sample outputs:

Fig.01: Listing all installed jdk's on Ubuntu Linux

Fig.01: Listing all installed jdk's on Ubuntu Linux


You can also use the following command to list all installed packages providing information to set a bunch of java alternatives.
$ update-java-alternatives -l
Sample outputs:

java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64
java-1.7.0-openjdk-amd64 1051 /usr/lib/jvm/java-1.7.0-openjdk-amd64

(Fig.02: A list of all installed JDK's on the system

Finding out the default java version

Type the following command:
$ java -version
Sample outputs:

java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.5) (6b27-1.12.5-0ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

(Fig.03: I am using OpenJDK 1.6 [openjdk and jre version 6])

Installing Oracle Java 7 On Ubuntu version 12.04 or 13.04+

The good news is you can install Oracle Java 7 easily and make it as the default source implementation of the Java platform. First, grab Oracle Java 7 directly from Oracle Java download page:

Fig.04: Download Oracle Java 7

Fig.04: Download Oracle Java 7


Make sure you download 32 bit (Linux x86 ~ jdk-7u21-linux-i586.tar.gz) or 64 bit (Linux x64 ~ jdk-7u21-linux-x64.tar.gz) JDK version in .tar.gz format:
Fig.05: Accept Oracle license and download either 64 or 32 bit version in tar.gz format

Fig.05: Accept Oracle license and download either 64 or 32 bit version in tar.gz format


Note: By default all files are downloaded in ~/Download/ ($HOME/Download/) directory.

Install jdk-7u21-linux-x64.tar.gz

Open a terminal and type the following command to list your files:
$ ls ~/Downloads/*.tar.gz
Sample outputs:

/home/nixcraft/Downloads/jdk-7u21-linux-x64.tar.gz

Untar the tar ball and install at /usr/lib/jvm/ directory:

 
sudo mkdir -p /usr/lib/jvm/
sudo tar xvf ~/Downloads/jdk-7u21-linux-x64.tar.gz -C /usr/lib/jvm
 

Sample outputs:

jdk1.7.0_21/
jdk1.7.0_21/include/
jdk1.7.0_21/include/jvmti.h
jdk1.7.0_21/include/jawt.h
jdk1.7.0_21/include/jvmticmlr.h
jdk1.7.0_21/include/jdwpTransport.h
jdk1.7.0_21/include/jni.h
jdk1.7.0_21/include/linux/
jdk1.7.0_21/include/linux/jawt_md.h
jdk1.7.0_21/include/linux/jni_md.h
jdk1.7.0_21/include/classfile_constants.h
jdk1.7.0_21/bin/
jdk1.7.0_21/bin/jhat
jdk1.7.0_21/bin/policytool
jdk1.7.0_21/bin/rmiregistry
jdk1.7.0_21/bin/jrunscript
jdk1.7.0_21/bin/javafxpackager
jdk1.7.0_21/bin/jcmd
...
..
...
jdk1.7.0_21/jre/plugin/
jdk1.7.0_21/jre/plugin/desktop/
jdk1.7.0_21/jre/plugin/desktop/sun_java.png
jdk1.7.0_21/jre/plugin/desktop/sun_java.desktop
jdk1.7.0_21/jre/COPYRIGHT
jdk1.7.0_21/jre/THIRDPARTYLICENSEREADME-JAVAFX.txt
jdk1.7.0_21/LICENSE
jdk1.7.0_21/COPYRIGHT
jdk1.7.0_21/THIRDPARTYLICENSEREADME-JAVAFX.txt

Oracle Java 7 has been installed in /usr/lib/jvm/jdk1.7.0_21/ directory. Type the following ln command to create a softlink:

cd /usr/lib/jvm
sudo ln -s jdk1.7.0_21 java-1.7.0-sun-amd64

Setting the default Java to use

Type the following command
$ sudo update-alternatives --config java
Sample outputs:

Fig.06: Setting the default Java to Oracle 7 Java

Fig.06: Setting the default Java to Oracle 7 Java

Update your ~/bashrc

Edit the file ~/bashrc, enter:

 
vi ~/bashrc
 

Set or update the JAVA_HOME and PATH shell variables as follows:

 
export JAVA_HOME="/usr/lib/jvm/jdk1.7.0_21"
export PATH="$PATH:$JAVA_HOME/bin"
 

Save and close the file.

Verify new java settings

Type the following command:

 
java -version
 

Sample outputs:

java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

How do I configure Mozilla Firefox Java 7 plugin?

First, close running Firefox. Open a terminal and cd into /usr/lib/firefox-addons/plugins directory, enter:

 
cd /usr/lib/firefox-addons/plugins
 

Type the following command to create a softlink to libnpjp2.so, enter:

 
ln -s $JAVA_HOME/jre/lib/amd64/libnpjp2.so .
 

OR

 
ln -s /usr/lib/jvm/jdk1.7.0_21/jre/lib/amd64/libnpjp2.so .
 

How do I test whether Java is working on my Firefox?

Start the Firefox and visit this url to verify that Oracle 7 java Applet / plugin is working for Firefox:

Fig.07: Testing whether Java is working on my Firefox browser

Fig.07: Testing whether Java is working on my Firefox browser

So there you have it-the ultimate and official Oracle Java 7 JDK/JRE running on Ubuntu Linux and Firefox web-browser plugin.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 25 comments… read them below or add one }

1 Danny May 17, 2013 at 3:39 pm

I followed this guide to the letter (Kubuntu 13.04) but get this in response to:

$ sudo update-alternatives –config java

“There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Nothing to configure.”

Reply

2 nixCraft May 17, 2013 at 5:08 pm

It means java is working on your system and no other JDK installed.

HTH

Reply

3 genevieve May 23, 2013 at 1:09 am

Thanks for this, it works perfectly for me. Can you tell me where to find instructions for getting it to work in Chrome as well (not Chromium)?

Reply

4 Brian June 19, 2013 at 3:48 pm

I see the same as Danny (17/May).

I followed the steps to install the Oracle JDK up to and including the command:

sudo ln -s jdk1.7.0_21 java-1.7.0-sun-amd64

but after doing that I get no options when I run the command:

sudo update-alternatives –config java

What may be causing that?

Reply

5 Brian June 19, 2013 at 4:35 pm

Replying to my own post, I think there’s a step missing in the instructions.

I *think* that before running this command:

sudo update-alternatives –config java

You need to first run this command:

sudo update-alternatives –install “/usr/bin/java” “java” “/usr/lib/jvm/java-1.7.0-sun-amd64/bin/java” 1

That seems to fix the problem.

Reply

6 Danny June 20, 2013 at 7:39 am

@Brian
Following up on my original post (:-) I concur with what you discovered and all is good now. Thanks!

Reply

7 Nate August 3, 2013 at 11:01 pm

When I run:
sudo update-alternatives –install “/usr/bin/java” “java” “/usr/lib/jvm/java-1.7.0-sun-amd64/bin/java” 1

I get an error that I don’t understand:
update-alternatives: error: alternative link is not absolute as it should be: “/usr/bin/java”

Any ideas?

Reply

8 A August 13, 2013 at 11:23 am

Do not copy paste. Quotation marks and double dash in Brian’s post should be substituted to normal ones. It worked for me.

Reply

9 Ryan Hendry January 9, 2014 at 9:01 pm

This worked for me:

sudo update-alternatives --install '/usr/bin/java' 'java' '/usr/lib/jvm/java-1.7.0-sun-amd64/bin/java' 1

Reply

10 amin June 27, 2013 at 12:54 pm

thank you for your instruction; i followed your instruction. after all you create softlink for it, and you wrote :
sudo ln -s jdk1.7.0_21 java-1.7.0-sun-amd64
but mine was :
sudo ln -s jdk1.7.0_25 java-1.7.0-openjdk-amd64

now when i run “java -version” i see this output:
java version “1.7.0_05″
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)

but i downloaded 7u25 and install with your instruction.
can you help me please ?

Reply

11 cplee June 28, 2013 at 7:00 am

Look at the reply post by Brian to Danny. Need to run the update-alternative with the –install option first. If not, ubuntu doesn’t know about the new jdk you just installed.

–cp

Reply

12 Dhiraj Singh July 2, 2013 at 12:40 pm

When i enter the following command :
sudo tar xvf ~/Downloads/jdk-7u21-linux-x64.tar.gz -C /usr/lib/jvm
output :
dhiraj@dhiraj-OptiPlex-320:~$ sudo tar xvf ~/Downloads/jdk-7u21-linux-x64.tar.gz -C /usr/lib/jvm
tar: /home/dhiraj/Downloads/jdk-7u21-linux-x64.tar.gz: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now

Reply

13 sachin Dua July 19, 2013 at 5:09 am

sachin@sachin-Lenovo-G550:~$ java -version
java version “1.7.0_21″
OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-1ubuntu1)
OpenJDK Server VM (build 23.7-b01, mixed mode)
when I apply this command this showe that java is installed in my system,but when I am going to compile any java program it gives the following error
sachin@sachin-Lenovo-G550:~/programs$ javac abc.java
The program ‘javac’ can be found in the following packages:
* default-jdk
* ecj
* gcj-4.6-jdk
* gcj-4.7-jdk
* openjdk-7-jdk
* openjdk-6-jdk
Try: sudo apt-get install
please tell me how to get rid of it & run my java program

Reply

14 BearFather July 19, 2013 at 10:18 pm

Thank you Thank you Thank you. With Brian’s fix and this wonderful tutorial I’m finally got 1.7 installed.

Reply

15 nictrix July 22, 2013 at 8:18 pm

I believe this is a typo in the article. vi ~/bashrc (it should show the dot, like below)

vi ~/.bashrc

And I think you’ll want to do a source ~/.bashrc after to verify the java installation properly.

Reply

16 Subhadip July 25, 2013 at 6:28 pm

I have Oracle Java installed on Ubuntu 12.04 32 bit. Java is working fine on Firefox and Google Chrome but not on Chromium. Can anybody please help?

Reply

17 Tauseef September 6, 2013 at 3:39 pm

i urgently need to install jdk..m stuck up with java -version command it shows tht u gta install using sudo apt-get…i didnt hav any alternatives so when i tried the command sudo update-alternatives –install “/usr/bin/java” “java” “/usr/lib/jvm/java-1.7.0-sun-amd64/bin/java” 1…it tells command not found.pls help
i hav ubuntu 12 LTE working on vmware.

Reply

18 Prasad September 11, 2013 at 1:18 pm

You saved my ass.

Gr8 post. I invested around 2 hours to get it done but nothing worked out.

Then I came to this post and everthing is working fine now.
Thanks a ton !!!

Reply

19 Stephen September 17, 2013 at 7:53 pm

Thanks also from me, to quote BearFather “with Brian’s fix and this wonderful tutorial I’m finally got 1.7 installed.”

Reply

20 chad September 24, 2013 at 6:19 pm

nice for a noob like me., help me a lot.

Reply

21 MMH October 15, 2013 at 2:48 am

It’s better to run this command to update all java commands at once specially for JDK:

for x in java{,c,p,h,ws}; do update-alternatives --install /usr/bin/$x $x /usr/lib/jvm/java-1.7.0-sun-amd64/bin/$x 1074; done

Reply

22 dai October 19, 2013 at 3:00 pm

where can you get “update-java-alternatives” separately from Ubuntu ?
anyone ?

Reply

23 Kor October 29, 2013 at 7:11 am

How do you update, save and close?? I don’t understand Linux commands.

stuck at “vi -r ~/bashrc”

Reply

24 Hrishikesh February 20, 2014 at 1:39 pm

Thanks :)

Reply

25 Biswa February 26, 2014 at 10:57 am

Thanks for the article. :)

Reply

Leave a Comment

Tagged as: , , , , ,

Previous Faq:

Next Faq: