59

I have an ubuntu system and I want to replace my openjdk with oracle-jdk.

However if I remove my open-jdk and then install oracle-jdk, when I try to install some packages they want to install openjdk and I don't want this.

Is there any way to install those packages on top of oracle-jdk? One of those packages is freemind.

2
  • Which packages require open-jdk that you want to install? (besides freemind)
    – Seth
    Mar 6, 2014 at 17:24
  • I caught oracle-jdk adding itself to PATH in /etc/profile.d/jdk.sh. Removing this file and starting a fresh shell allowed update-alternatives to do its job.
    – jozxyqk
    Mar 14, 2017 at 22:48

4 Answers 4

84

You can completely remove the OpenJDK and fresh Install Oracle Java JDK by following these steps:

  1. Remove OpenJDK completely by this command:

    sudo apt-get purge openjdk-\*
    
  2. Download the Oracle Java JDK here.

    Note: download appropriate file, for example if your system is x64 Ubuntu (i.e, Debian) the download file is named like this: jdk-8u51-linux-x64.tar.gz

    To find which version is your OS, check here

  3. Create a folder named java in /usr/local/by this command:

    sudo mkdir -p /usr/local/java
    
  4. Copy the Downloaded file in the directory /usr/local/java. To do this, cd into directory where downloaded file is located and use this command for copying that file to /usr/local/java/:

    sudo cp -r jdk-8u51-linux-x64.tar.gz /usr/local/java/
    
  5. CD into /usr/local/java/ directory and extract that copied file by using this command:

    sudo tar xvzf jdk-8u51-linux-x64.tar.gz
    
  6. After extraction you must see a folder named jdk1.8.0_51.

  7. Update PATH file by opening /etc/profile file by the command sudo nano /etc/profile and paste the following at the end of the file:

    JAVA_HOME=/usr/local/java/jdk1.8.0_51
    PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
    export JAVA_HOME
    export PATH
    
  8. Save and exit.

  9. Tell the system that the new Oracle Java version is available by the following commands:

    sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.8.0_51/bin/java" 1
    sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.8.0_51/bin/javac" 1
    sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.8.0_51/bin/javaws" 1
    
  10. Make Oracle Java JDK as default by this following commands:

    sudo update-alternatives --set java /usr/local/java/jdk1.8.0_51/bin/java
    sudo update-alternatives --set javac /usr/local/java/jdk1.8.0_51/bin/javac
    sudo update-alternatives --set javaws /usr/local/java/jdk1.8.0_51/bin/javaws
    
  11. Reload sytem wide PATH /etc/profile by this command:

    source /etc/profile
    
  12. Reboot your system.

  13. Check Java JDK version by java -version command . If installation is succesful, it will display like the following:

    java version "1.8.0_51"
    Java(TM) SE Runtime Environment (build 1.8.0_51-xxx)
    Java HotSpot(TM) Server VM (build 25.51-xxx, mixed mode)
    

That's it!

Note: We Assumed that the downloaded file is named jdk-8u51-linux-x64.tar.gz and used this name in all the commands used in steps 2, 4 and 5. It may depends on the type of O.S, processor type (i.e., 32bit or 64bit)

6
  • 1
    Beside this is the correct way to manually install oracle-jdk there is a package available from WebUpd8 PPA which will be updated, too. So there is no need to install every new version manually. See my answer here: askubuntu.com/questions/466166/…
    – lschuetze
    Apr 1, 2015 at 9:21
  • 3
    Instead of using the directory jdk1.8.0_51, create a symlink named just "jdk" to this directory and next time you update just extract the JDK tarball and recreate the symlink and you're done.
    – ColinM
    Aug 4, 2015 at 18:37
  • for ubuntu users: theres a foolproof method below from @mihaic that works well for me
    – Carson Ip
    Dec 26, 2015 at 8:30
  • You are rockstar
    – Bhupinder
    Dec 14, 2016 at 15:09
  • Please note that if you want to download the JDK in Ubuntu Server (without GUI), you can use the following command: wget --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/9.0.4+11/c2514751926b4512b076cc82f959763f/jdk-9.0.4_linux-x64_bin.tar.gz" You can always copied the latest version by go back the Oracle download page and generate a new one. Feb 22, 2018 at 4:40
21

You don't need to remove openjdk in order to use / install the oracle's jdk. Just install the oracle's jdk and configure which java you want to use by configuring it with:

sudo update-alternatives --config java

You can find more help here: https://help.ubuntu.com/community/Java

2
  • I need a way to have only one java on my ubuntu. tnx.
    – littleali
    Mar 6, 2014 at 11:48
  • This is a great answer. Groovy on Debian jessie forces openjdk to be installed, but the work I do requires (don't ask) the Oracle JDK for compilation. This option allowed me to leave both openjdk and oracle jdk installed so everything plays nicely. Thanks!
    – sanimalp
    Sep 8, 2016 at 17:03
11

Tested in Ubuntu 14.04/16.04. In three steps:

  1. Install the oracle-java7-installer (or oracle-java8-installer) from the webupd8team repository

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java7-installer
    
  2. Make sure it works with the following command:

    java -version
    

    It should display something similar to:

    java version "1.7.0_76"
    Java(TM) SE Runtime Environment (build 1.7.0_76-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 24.76-b04, mixed mode)
    
  3. (Optional) Remove the open-jdk if you really want/need to:

    sudo apt-get purge openjdk-\*
    

You can find more information here

3
  • Followed your directions and got a Unable to find java executable. Check JAVA_HOME and PATH environment variables. error
    – Zack S
    Jul 28, 2015 at 16:59
  • surprised of finding my own answer one year later, this still works for Ubuntu 16.04 and oracle-java8-installer
    – toto_tico
    Jun 24, 2016 at 13:06
  • Got this when adding the repo: W: The repository 'http://ppa.launchpad.net/natecarlson/maven3/ubuntu xenial Release' does not have a Release file. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use. Mar 20, 2017 at 15:31
8

After removing openjdk, try this approach that worked for me:

Install oracle jdk 7 on ubuntu server (tested with ubuntu 12.0.4)

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

some more info here: https://launchpad.net/~webupd8team/+archive/java

(note to adapt this for your version of jdk)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .