Q. How do I install Sun Java Development Kit (JDK) and Java Runtime Environment (JRE) under Ubuntu Linux? It appears that there are multiple JRE installed by default under Ubuntu. How do I select and use Sun JRE only? Can you explain steps required to set the environment to run java programs or apps?
A. Ubuntu Linux 7.10 has following packages from Sun:
=> sun-java6-bin : Sun Java Runtime Environment (JRE) 6
=> sun-java6-demo : Sun Java Development Kit (JDK) 6 demos
=> sun-java6-jdk : Sun Java Development Kit (JDK) 6
=> sun-java6-jre : Sun Java Runtime Environment (JRE) 6
Install Sun Java 6
To install proprietary Java, you must have the Multiverse repository enabled. Click on System > Administration > Software Source > Select Multisource > Close

Open a shell prompt (terminal) and type the following to install JDK and JRE:
$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk
Setup the default Java version
Ubuntu Linux comes with update-java-alternatives utility to updates all alternatives belonging to one runtime or development kit for the Java language. To select, Sun's JVM as provided in Ubuntu 7.10, enter:
$ sudo update-java-alternatives -s java-6-sun
You also need to edit a file called /etc/jvm. This file defines the default system JVM search order. Each JVM should list their JAVA_HOME compatible directory in this file. The default system JVM is the first one available from top to bottom. Open /etc/jvm
$ sudo vi /etc/jvm
Make sure /usr/lib/jvm/java-6-sun is added to the top of JVM list
/usr/lib/jvm/java-6-sun
At the end your file should read as follows:
/usr/lib/jvm/java-6-sun
/usr/lib/jvm/java-gcj
/usr/lib/jvm/ia32-java-1.5.0-sun
/usr/lib/jvm/java-1.5.0-sun
/usr
Save and close the file.
Setup the environment variable
You also need to setup JAVA_HOME and PATH variable. Open your $HOME/.bash_profile or /etc/profile (system wide) configuration. Open your .bash_profile file:
$ vi $HOME/.bash_profile
Append following line:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin
Save and close the file.
Test your new JDK
Type the following command to display version:
$ java -version
Output:
java version "1.6.0_03" Java(TM) SE Runtime Environment (build 1.6.0_03-b05) Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)
Try HelloWorld.java - first java program
$ vi HelloWorld.java
Append code:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
Save and close the file. Compile HelloWorld.java and execute program by typing following two instructions:
$ javac HelloWorld.java
$ java HelloWorld
Output:
Hello, World!
Further readings:
- Official Sun Java tutorial - The Java Tutorials are practical guides for programmers who want to use the Java programming language to create applications. They include hundreds of complete, working examples, and dozens of lessons. Groups of related lessons are organized into "trails".
- man pages java, javac
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- My 10 UNIX Command Line Mistakes
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
- Email FAQ to a friend
- Download PDF version
- Printable version
- Comment RSS feed
- Last Updated: 09/17/08



{ 71 comments… read them below or add one }
When I execute:
$ javac HelloWorld.java
Show me this error:
El programa «javac» puede encontrarse en los siguientes paquetes:
* jikes-sun
* jikes-sablevm
* gcj-4.2
* kaffe
* ecj
* java-gcj-compat-dev
* j2sdk1.4
* jikes-classpath
* jikes-gij
* gcj-4.1
* sun-java5-jdk
* jikes-kaffe
* sun-java6-jdk
Pruebe: sudo apt-get install
bash: javac: orden no encontrada
Thanks, any help would be greatly appreciated.
Miguel:
I had the same problem. I solved it by running:
sudo update-java-alternatives -s java-6-sun
You will also need to install sun-java6-jdk if you have not done that already
WinRAR en Java Sun JDk 6 download
thanks. works
$ sudo apt-get install sun-java6-bin sun-java6-jre
should be
$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk
to solve the compile problem
thx dru (:
Thanks for the heads up. The faq has been updated.
Thanks yeah!!!! I could install java… I m not a newbie but was still facing lots of problem… and all was resolved following these simple steps religiously….
This won’t work in 64-bit.
I follow the instructions. but if I type
$ java -version
java version “1.5.0_14″
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode, sharing)
jdk1.5.0_14 installed at /usr/java/jdk1.5.0_14/
should I remove jdk1.5.0_14 first?
thx
Hi,
When I build the opennms-1.5.93 in Ubutu, when I entered the ./build.sh compile. I will have the following error:
java.lang.OutOfMemoryError: PermGen space
Anyone could help me ?
Thanks in advance.
John
Thanks for this. I’ve been setting up several Ubuntu laptops for students in my AP Computer Science class and this was very helpful.
Thanks, nice tutorial.
Apparently I was able to install SE Runtime Environment build 1.6.0_03-b05 successfully since it shows up on my terminal window when i call it up. I still am not able to get my active window in my stock account which went away when I installed Firefox 3.01. When I was working in FF 3, I had to install the plug in to make it work. What else do I need?
Ubuntu 7.10 Firefox 3.01
Hi, i need your help.
when i going to install some third party program,
it pop up this message:
PLUGIN_JAVA_HOME
PLUGIN_JAVA_HOME
please set PLUGIN_JAVA_HOME
any one can help me on this?
Above under Setup Default Java Version, at the end it says to save and close the file. How do you save? I can’t find a command for ’save’.
mike:
You can also use the nano editor, which may be easier for you.
But, if you’re using vi/vim:
:wq
will write the file and exit it.
I am a beginner,I am having a problem in doing the following steps :
You also need to edit a file called /etc/jvm. This file defines the default system JVM search order. Each JVM should list their JAVA_HOME compatible directory in this file. The default system JVM is the first one available from top to bottom. Open /etc/jvm
$ sudo vi /etc/jvm
Make sure /usr/lib/jvm/java-6-sun is added to the top of JVM list
/usr/lib/jvm/java-6-sun
At the end your file should read as follows:
/usr/lib/jvm/java-6-sun
/usr/lib/jvm/java-gcj
/usr/lib/jvm/ia32-java-1.5.0-sun
/usr/lib/jvm/java-1.5.0-sun
/usr
I had done all the steps in which i am facing problem , Hello world program works nicely but when i run the program of classes I am getting the error that is :
Caused by: java.lang.ClassNotFoundException: Classes
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
PLese help me
Am now internet banking using firefox and my bank’s java dependent website, thanks.
Hi@
very helpful, all problems around “jaolt” are solved with this entry
thx
J
Thanks for the great writeup! This is exactly what I was looking for and I was up and running in no time.
Hi, for a course I have to use java again and I was looking for a quick installation guide and yours did the trick on Ubuntu 8.10! Thanks
hey!!!
i followed the instruction but i m not able install jdk in linux..
plse help me….
i m
:~$ sudo apt-get install sun-java5-jdk
[sudo] password for sebastian:
Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
Since you only requested a single operation it is extremely likely that
the package is simply not installable and a bug report against
that package should be filed.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
sun-java5-jdk: Depends: sun-java5-demo (= 1.5.0-16-2ubuntu2) but it is not going to be installed
Depends: sun-java5-jre (= 1.5.0-16-2ubuntu2) but it is not going to be installed
E: Broken packages
sebastian@sebastian-laptop:~$
any ideas why this can’t be done?
Thanks pal!
Thanks.
This is very helpful.
i am try but i am not able to install jdk so please help me
I was having trouble with the /etc/jvm part, so I just tried running one of my own java programs and they seemed to work fine.
jee@jee-desktop:~$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk
E: dpkg was interrupted, you must manually run ‘dpkg –configure -a’ to correct the problem.
anyone can help me.After i installed java in ubuntu8.04,i got this error.
thanks a lot these informations are very helpfull=)I solved completly my problems about that…
Thanks a lot for the post! Anything that’s not config/make/make install is a bit confusing to me — Ubuntu’s like Windows with less-slick graphics :) Anyway, no religious wars — your post was *really* helpful.
Thanks for your nice nice Article.
Plase help me I’m having same as VANI.Now I can not able to install any soft in my Ubuntu.Please PLEASE help me
thanks… helpfull!!!!
Why is the Ubuntu multiverse repository for Sun-JDK 1.6 only on 1.6.0_07 while Sun says it’s up to 1.6.0_14?
Thanks very helpful
Why is the Ubuntu multiverse repository for Sun-JDK 1.6 only on 1.6.0_07 while Sun says it’s up to 1.6.0_14?
thats vary nice
step by step
excelent.
java sun it’s work !
Thank you. :)
i see instal the java instructin .that methord folow.cannot instal java in ubuntu 8.04 lts.please help me
Excellent – concise, accurate and easy. Thank you.
thank u for previous information.
i install some software in way to terminal.that time i see dpkg error i ubuntu 8.04.I can’t install softwares.
please help me.
I am facing same problem as vani face.
:(
help me out
when i input the root password on the terminal i get “sorry try again” HELP
I have done the steps and it all works but I cant get Scanner working when I write code anyone got any idea why not.
When i want to run a java prog any more sophisticated than hello world or similar, the jvm gives me the following:
baruch@baruch-laptop:~/jdownloader$ java -jar jdupdate.jar
Exception in thread “main” java.lang.NoClassDefFoundError: jd.update.Main
at java.lang.Class.initializeClass(libgcj.so.90)
Caused by: java.lang.ClassNotFoundException: com.sun.java.swing.plaf.windows.WindowsLookAndFeel not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:jdupdate.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.90)
at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at java.lang.Class.forName(libgcj.so.90)
at java.lang.Class.initializeClass(libgcj.so.90)
What is wrong with my current java installation (i have installed an parallel one, it worked like a charm). Does anybody know how to solve this problem? And how to set the parallelly installed jvm to be the standard one? TIA.
You are using GNU java. Install Sun JAVA and switch to it.
I have installed Sun java. How to “switch”? TIA.
Run update-java-alternatives -l to all installed java versions:
update-java-alternatives -lSet it to Sun java
update-java-alternatives -s java-6-sunVerify it:
java -versionWorks! Java VM ist alive and kicking again:) Thx a lot!!!!
MicroSoft has nothing to worry about.
I thought I would try Ubuntu on an old computer.
I got Ubuntu 9.1 installed and running.
Then I just spent 5 frustrating hours TRYING to install Java jdk on Ubuntu 9.1. WTF!!!
Monday is trash day. That old computer with Ubuntu 9.1 Will be in the pile.
Remember to set “JAVA_JDK” for intelliIDE to run. Also make sure it’s not using openjava jdk which may have installed if you installed icetea jre in firefox, then you’re JRE and JDK may have switched. Remember to reset your JAVA_HOME env (which java install never does for you) if you updated and they’ve decided to break your symlink. Updated Ubuntu? No problem someone will have decided that .bash_profile is now to be called .bachrc, why you ask? God knows – but I’m sure they will change it back again to piss you off on the next update. Java would be great if it wasn’t for all the moronic bullshit you have to configure and their insane versioning… oh yeah it’s JEE now with Java6 that I work with not 1.6!!. Couple this with Linux vendors stupid changing of config files with every release and you’ve got one giant mess.
Hello. Sorry for my english but i am not good in this language. I have a problem. I compile a java file which has this class: class Pan extends java.applet.Applet implements Runnable { …
but i have many warnings like this : warning: [deprecation] size() in java.awt.Component has been deprecated —- x1 = size().width
I make compile : javac name.java -Xlint
Is anybody who can help me please????
Thank you.
Hi, most everything went well except when I did:
$ sudo update-java-alternatives -s java-6-sun
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-alternatives: error: no alternatives for pluginappletviewer.
update-alternatives: error: no alternatives for xulrunner-1.9-javaplugin.so.
update-alternatives: error: no alternatives for xulrunner-1.9-javaplugin.so.
Everything in the write up works though, will this be a problem with other things you think? I am not sure what this line is supposed to accomplish. Can you give me some insight on that? Thanks, much!
install java hotspot
hello,everyone
i got a problem when i install sun java.
here is errors.
how can i fix it?
apt-get install sun-java6-jre
E: dpkg was interrupted, you must manually run ‘dpkg –configure -a’ to correct the problem.
pls,help
prince@THOTTATHIL:~$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk
[sudo] password for prince:
E: dpkg was interrupted, you must manually run ’sudo dpkg –configure -a’ to correct the problem.
how to solve this ?
i solved the above but new problem is i dont know how to do sudo vi /etc/jvm
wen i entered this command to terminal and the following /usr/lib/jvm/java-6-sun
got error E486: pattern not found: usr
pls help me
when i’m trying to install java in my ubuntu these message appeared
jhang@ubuntu:~$ sudo apt-get install sun-java6-jdk
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Couldn’t find package sun-java6-jdk
i could not compile my java source code!! HELP PLEASE!!!
use this way,i have successed install jdk on my ubuntu9.10.
many tks!
@ jhang
Try sudo apt-get install default-jdk. This installed the open jdk which is (afaik) just sun java with a friendlier foss license.
i could not play my videos and music on my ubuntu.. what’s the better way to enable me to do so????
after installing jdk and jre
next instruction are not working properly in my ubuntu(9.04)
please help …..
Thank you, Vivek. As a newbie to Ubuntu, installing and configuring the individual components has been very frustrating to learn. Your post was clear and precise, allowing me to get java up and running (after numerous failed attempts).
- Russell
@jhang, for your earlier problem try sudo apt-get update.
then to play audio/videos u need to install players.
for tht u can try sudo apt-get install vlc mplayer gmplayer
thanks man,
quite helpful :)
when i used this command in terminal $ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk ia getting error as
E: Couldn’t find package sun-java6-bin
i am new to ubuntu can any one help me out
Thanks, Very good Tutorial!
when i used this command in terminal $ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk ia getting error as
E: Couldn’t find package sun-java6-bin
i am new to ubuntu can any one help me out