52

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.

migrated from stackoverflow.com Mar 6 '14 at 17:22

This question came from our site for professional and enthusiast programmers.

  • Which packages require open-jdk that you want to install? (besides freemind) – Seth Mar 6 '14 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 '17 at 22:48
78

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)

  • 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 '15 at 9:21
  • 2
    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 '15 at 18:37
  • for ubuntu users: theres a foolproof method below from @mihaic that works well for me – Carson Ip Dec 26 '15 at 8:30
  • You are rockstar – Bhupinder Dec 14 '16 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. – Toan Nguyen Feb 22 '18 at 4:40
20

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

  • I need a way to have only one java on my ubuntu. tnx. – little ali Mar 6 '14 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 '16 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

  • Followed your directions and got a Unable to find java executable. Check JAVA_HOME and PATH environment variables. error – Zack S Jul 28 '15 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 '16 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. – crockpotveggies Mar 20 '17 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)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.