In this tutorial, we will show you how to install Oracle JDK 8 On Debian, manually.
Environment :
- Debian 7
- OpenJDK 1.7 is installed. (Switch to Oracle JDK 8 later)
At the time of writing, OpenJDK 1.8 is not included in the default apt-get repository yet. I just don't like the default apt repository schedule, it constantly comes with older or outdated released.
Note
This guide is tested in other Debian derivatives like Ubuntu 14 and Mint 1.7.2.
1.1 A quick Java version check :
$ java -version
java version "1.7.0_75"
OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~deb7u1)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
$ javac -version
javac 1.7.0_75
An existing OpenJDK 1.7 is installed, no problem, we will show you how to switch it to JDK 8.
1.2 A quick search via apt-cache
, there is no openjdk-8… yet.
$ apt-cache search openjdk
...
openjdk-7-jre - OpenJDK Java runtime, using Hotspot JIT
openjdk-7-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-6-jre - OpenJDK Java runtime, using Hotspot JIT
openjdk-6-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
...
1.1 Visit Oracle JDK download page
1.2 Find a Linux x64 version, in this example, we will get the jdk-8u66-linux-x64.tar.gz
via wget
command.
$ pwd
/home/mkyong
$ wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz
If you don't want to use wget
(why?), just download the file and upload to your server manually.
3.1 Extracts it to path /opt/jdk/jdk1.8.0_66
$ pwd
/home/mkyong
$ sudo mkdir /opt/jdk/
$ sudo mv ~/jdk-8u66-linux-x64.tar.gz /opt/jdk/
$ sudo cd /opt/jdk/
$ pwd
/opt/jdk/
$ sudo tar -zxf jdk-8u66-linux-x64.tar.gz
$ ls -ls
total 177056
4 drwxr-xr-x 3 root root 4096 Oct 27 13:05 .
4 drwxr-xr-x 3 root root 4096 Oct 27 13:03 ..
4 drwxr-xr-x 8 uucp 143 4096 Oct 7 00:40 jdk1.8.0_66
177044 -rw-r--r-- 1 root root 181287376 Oct 8 15:56 jdk-8u66-linux-x64.tar.gz
Note
Alternatively, try this one line extraction command.
$ sudo tar x -C /opt/jdk -f jdk-8u66-linux-x64.tar.gz
4.1 Make /opt/jdk/jdk1.8.0_66
as a new JDK alternatives for both /usr/bin/java
and /usr/bin/javac
$ sudo update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_66/bin/java 100
$ sudo update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_66/bin/javac 100
4.2 Update the default JDK, for both java
and javac
$ update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 auto mode
* 1 /opt/jdk/jdk1.8.0_66/bin/java 100 manual mode
2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 manual mode
Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /opt/jdk/jdk1.8.0_66/bin/java to provide /usr/bin/java (java) in manual mode
$ update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 1051 auto mode
* 1 /opt/jdk/jdk1.8.0_66/bin/javac 100 manual mode
2 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 1051 manual mode
Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /opt/jdk/jdk1.8.0_66/bin/javac to provide /usr/bin/javac (javac) in manual mode
Check Java version again.
$ java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
root@hydra:/opt/jdk#
$ javac -version
javac 1.8.0_66
Done. Enjoy your Lambda!
Let say new jdk1.8.0_99
is released, and we want to upgrade it.
6.1 Download the JDK tar files and extracts it to /opt/jdk/jdk1.8.0_99
6.2 Self-explanatory.
# 6.2.1 Remove the existing alternatives - jdk1.8.0_66
$ sudo update-alternatives --remove java /opt/jdk/jdk1.8.0_66/bin/java
$ sudo update-alternatives --remove javac /opt/jdk/jdk1.8.0_66/bin/javac
# 6.2.2 Install new JDK alternatives - jdk1.8.0_99
$ sudo update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_99/bin/java 100
$ sudo update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_99/bin/javac 100
# 6.2.3 Update default JDK again, select /opt/jdk/jdk1.8.0_99
$ update-alternatives --config java
$ update-alternatives --config javac
# 6.2.4 Remove the old JDK folders
$ sudo rm -rf /opt/jdk/jdk1.8.0_66/
How about upgrade to the upcoming Oracle JDK 9? you know what to do :)