How to install JDK 10 under Ubuntu?

JavaUbuntuJava 10

Java Problem Overview


How do I install Java Development Kit (JDK) 10 on Ubuntu?

The installation instructions on Oracle's help center only explain how to download and extract the archive on Linux platform, without any system setup.

Java Solutions


Solution 1 - Java

Update: JDK 11 Now Available

sudo apt-get install openjdk-11-jdk

For JDK 10

Option 1: Easy Installation (PPA)

sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update
sudo apt-get install oracle-java10-installer

Then set as default with:

sudo apt-get install oracle-java10-set-default

And finally verify Installation with:

$ java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

Source: Linux Uprising

Option 2: Manual Installation

  • Download OpenJDK 10 binaries for Linux.

  • Untar the downloaded archive:

      tar xzvf openjdk-10_linux-x64_bin.tar.gz
    
  • Move the extracted archive to where your system keeps your installed JDKs:

      sudo mv jdk-10 /usr/lib/jvm/java-10-openjdk-amd64/
    
  • Add the new Java alternative:

      sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-10-openjdk-amd64/bin/java 1
      sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-10-openjdk-amd64/bin/javac 1
    
  • Update your system's java alternatives and choose JDK 10:

      $ sudo update-alternatives --config java
      here are 3 choices for the alternative java (providing /usr/bin/java).
    
        Selection    Path                                            Priority   Status
      ------------------------------------------------------------
        0            /usr/lib/jvm/java-9-openjdk-amd64/bin/java       1091      auto mode
      * 1            /usr/lib/jvm/java-10-openjdk-amd64/bin/java      1         manual mode
        2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
        3            /usr/lib/jvm/java-9-openjdk-amd64/bin/java       1091      manual mode
      
      Press <enter> to keep the current choice[*], or type selection number: 
      
    

    and

      $ sudo update-alternatives --config javac
      There are 3 choices for the alternative javac (providing /usr/bin/javac).
      
        Selection    Path                                          Priority   Status
      ------------------------------------------------------------
      * 0            /usr/lib/jvm/java-9-openjdk-amd64/bin/javac    1091      auto mode
        1            /usr/lib/jvm/java-10-openjdk-amd64/bin/javac   1         manual mode
        2            /usr/lib/jvm/java-8-openjdk-amd64/bin/javac    1081      manual mode
        3            /usr/lib/jvm/java-9-openjdk-amd64/bin/javac    1091      manual mode
      
      Press <enter> to keep the current choice[*], or type selection number: 1
      update-alternatives: using /usr/lib/jvm/java-10-openjdk-amd64/bin/javac to provide /usr/bin/javac (javac) in manual mode
    
      
    
  • Verify your installation with:

      $ java --version
      openjdk 10 2018-03-20
      OpenJDK Runtime Environment 18.3 (build 10+46)
      OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode)
    

    and

      $ javac --version
      javac 10
    
  • Done


If you prefer Oracle's JDK, download it and follow the installation steps as shown above.

Solution 2 - Java

I've found SdkMan! a very useful tool because it provides a convenient way for managing your JDKs from the shell.

For example, once it is installed, you can:

Install a specific JDK version: sdk install java 10.0.2-open
Downloading: java 10.0.2-open

In progress...

#################                             12,3%
Use a specific JDK version: sdk use java 10.0.2-open
Using java version 10.0.2-open in this shell.
List available JDK: sdk list java
===================================================================
Available Java Versions
===================================================================                                                        
     9.0.4-open                                                                    
   + 8u161-oracle                                                                  
     8.0.191-oracle                                                               
 > + 8.0.171-oracle                                                                
     7.0.191-zulu                                                                 
     12.ea.15-open                                                                 
     11.0.1-open                                                                  
     10.0.2-open                                                                   
     1.0.0-rc8-graal                                                              

===================================================================
+ - local version
* - installed
> - currently in use
=======================================================================
And much more

See https://sdkman.io/usage

Solution 3 - Java

There is a ppa on java 10 that installs oracle's java: https://launchpad.net/~linuxuprising/+archive/ubuntu/java

I am not sure if this will be maintained though. It seems to be a copy of the webupd8 way on how to handle oracle java installation (ref: [documentation][1]).

How to use this ppa:

sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update
sudo apt-get install oracle-java10-installer

Verify installation:

$ /usr/lib/jvm/java-10-oracle/bin/java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

Setting up environment variables (make java10 default)

sudo apt-get install oracle-java10-set-default

[1]: https://www.linuxuprising.com/2018/04/install-oracle-java-10-in-ubuntu-or.html "documentation"

Solution 4 - Java

Note: You need update-alternatives only if you have multiple java versions.

Note: You can purge everything about Java before fresh installing new Java.

 sudo apt purge java*

For Java 10 fresh installation

  1. Download JDK 10 from here (you can download JRE and server JRE): http://www.oracle.com/technetwork/java/javase/downloads/index.html

  2. Extract and put somewhere in /opt/java directory. You putting JDK in /opt/java directory makes it will be usable for all users as it is being in the public /opt directory.

    (Note: I downloaded JDK, JRE, and server JRE, and extracted JDK and renamed extracted the folder to jdk10, extracted JRE and renamed extracted the folder to jre10, and extracted server JRE and renamed extracted the folder to jre10server as shown in below snapshot).

  3. Update your /etc/environment file as below enter image description here

Now, you need to reload the /etc/environment script file into the system using source command as below.

source /etc/environment

enter image description here

If you want to know more about update-alternatives then here is the link: https://askubuntu.com/questions/159575/how-do-i-make-java-default-to-a-manually-installed-jre-jdk

Solution 5 - Java

You need to do update-alternatives --install before the final step.

sudo update-alternatives --install "/usr/bin/java" java "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" javac "/usr/lib/jvm/java-10-openjdk-amd64/bin/javac" 1

Solution 6 - Java

I've found a repo

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt update
sudo apt install openjdk-10-jdk

Repo home page

Solution 7 - Java

Install Jdk 10 On Linux Ubuntu

  1. Download the required tarball from from Oracle official website, i.e. https://www.oracle.com

  2. Unzip this tarball using "tar -zxvf tarball_name”

  3. Create a folder named "java" in "/usr/lib", you need root permission
    sudo mkdir /usr/lib/java

  4. Move the extracted folder to “/usr/lib/java/” by using the following command:
    sudo mv java-10-dir-name/ /usr/lib/java/

  5. Now go to the location, i.e. cd /usr/lib/java/java-10-dir-name/

  6. Next, run these below scripts in terminal:

    sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/java/java-10-dir-name/bin/java" 1

     sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/java/java-10-dir-name/bin/javac" 1
    
     sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/java/java-10-dir-name/bin/javaws" 1
    

    NOTE: In the commands given above, you have to name the extracted directory of "java" instead of "java-10-dir-name".

    Update the JAVA_HOME in your ~/.bashrc

    export JAVA_HOME=/usr/lib/java/java-10-dir-name
    set PATH="$PATH:$JAVA_HOME/bin"
    export PATH
    

    Verify the installation

    verify whether Java 10 is installed correctly in your machine, execute the following command in your terminal:

    $ java --version
    openjdk 10 2018-03-20
    OpenJDK Runtime Environment 18.3 (build 10+46)
    OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode)
    

    And

    $ javac --version
    javac 10
    

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSamView Question on Stackoverflow
Solution 1 - JavaSamView Answer on Stackoverflow
Solution 2 - JavalealceldeiroView Answer on Stackoverflow
Solution 3 - JavastaletView Answer on Stackoverflow
Solution 4 - JavaUddhav P. GautamView Answer on Stackoverflow
Solution 5 - JavanitnambyView Answer on Stackoverflow
Solution 6 - JavaAlexander MikheevView Answer on Stackoverflow
Solution 7 - JavaAnkur SaxenaView Answer on Stackoverflow