Installing Java on Ubuntu
Accurate as of: Java 7, Ubuntu 12.04. The instructions below assume an amd64 (64-bit) installation. If you're still using a 32-bit OS, work out the differences yourself.
Via Package Management (Apt)
OpenJDK 7 is available via apt by default.
To install the JDK:
sudo aptitude update
sudo aptitude install openjdk-7-jdk
To install the JRE only (without the JDK):
sudo aptitude update
sudo aptitude install openjdk-7-jre
To install the JRE without GUI support (appropriate for headless servers):
sudo aptitude update
sudo aptitude install openjdk-7-jre-headless
(You can also use apt-get instead of aptitude.)
These packages interact with the alternatives
system,
and have a dedicated alternatives manager
script.
The alternatives system affects /usr/bin/java, /usr/bin/javac, and
browser plugins for applets and Java Web Start applications for browsers
installed via package management. It also affects the symlinks under
/etc/alternatives related to Java.
To list Java versions available, with at least one Java version installed via Apt:
update-java-alternatives --list
To switch to java-1.7.0-openjdk-amd64 for all Java invocations:
update-java-alternatives --set java-1.7.0-openjdk-amd64
The value should be taken from the first column of the --list output.
Tool support
Most modern Java tools will pick up the installed JDK via $PATH and do not
need the JAVA_HOME environment variable set explicitly. For applications old
enough not to be able to detect the JDK, you can set JAVA_HOME to
/usr/lib/jvm/java-1.7.0-openjdk-amd64.
By Hand
The Java SE Development Kit
7
tarballs can be installed by hand. Download the “Linux x64” .tar.gz version,
then unpack it in /opt:
cd /opt
tar xzf ~/jdk-7u45-linux-x64.tar.gz
This will create a directory named /opt/jdk1.7.0_45 (actual version number
may vary) containing a ready-to-use Java dev kit.
You will need to add the JDK's bin directory to PATH if you want commands
like javac and java to work without fully-qualifying the directory:
cat > /etc/profile.d/oracle_jdk <<'ORACLE_JDK'
PATH="${PATH}:/opt/jdk1.7.0_45/bin"
export PATH
ORACLE_JDK
(This will not affect non-interactive use; setting PATH for non-interactive programs like build servers is beyond the scope of this document. Learn to use your OS.)
Installation this way does not interact with the alternatives system (but you can set that up by hand if you need to).
For tools that cannot autodetect the JDK via PATH, you may need to set
JAVA_HOME to /opt/jdk1.7.0_45.