UPDATE: installation without root privileges below


I advise you to not install packages manually on ubuntu system if there is already a (semi-official) repository able to solve your problem. Further, use Oracle JDK for development, just to avoid (very sporadic) compatibility issues (i've tried many years ago, it's surely better now).

Add the webupd8 repo to your system:

Copysudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

Install your preferred version of jdk (versions from java-6 to java-9 available):

Copysudo apt-get install oracle-java8-installer

You can also install multiple version of jdk, mixing openjdk and oracle versions. Then you can use the command update-java-alternatives to switch between installed version:

Copy# list available jdk
update-java-alternatives --list

# use jdk7
sudo update-java-alternatives --set java-7-oracle

# use jdk8
sudo update-java-alternatives --set java-8-oracle

Requirements

If you get add-apt-repository: command not found be sure to have software-properties-common installed:

Copysudo apt-get install software-properties-common

If you're using an older version Ubuntu:

Copysudo apt-get install python-software-properties

JDK installation without root privileges

If you haven't administrator rights on your target machine your simplest bet is to use sdkman to install the zulu certified openjdk:

Copycurl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java

NOTE: sdkman allow to install also the official Oracle JDK, although it's not a the default option. View available versions with:

Copysdk ls java

Install the chosen version with:

Copysdk install java <version>

For example:

Copysdk install java 9.0.1-oracle

Glossary of commands

  • sudo <command> [command_arguments]: execute a command with the superuser privilege.

  • add-apt-repository <PPA_id>: Ubuntu (just like every Debian derivatives and generally speaking every Linux distribution) has a main repository of packages that handle things like package dependencies and updating. In Ubuntu is possible to extend the main repository using a PPA (Personal Package Archive) that usually contains packages not available in the system (just like oracle jdk) or updated versions of available ones (example: LibreOffice 5 in LTS is available only through this PPA).

  • apt-get [install|update|upgrade|purge|...]: it's "the" command-line package handler used to manipulate the state of every repository on the system (installing / updating / upgrading can be viewed as an alteration of the repository current state).

In our case: with the command sudo add-apt-repository ppa:webupd8team/java we inform the system that the next repository update must retrieve packages information also from webupd8 repo.

With sudo apt-get update we actually update the system repository (all this operations requires superuser privileges, so we prepend sudo to the commands).

sudo apt-get install oracle-java8-installer

  • update-java-alternatives (a specific java version of update-alternatives): in Ubuntu several packages provides the same functionality (browse the internet, compile mails, edit a text file or provides java/javac executables...). To allows the system to choose the user favourites tool given a specific task a mechanism using symlinks under /etc/alternatives/ is used. Try to update the jdk as indicated above (switch between java 7 and java 8) and view how change the output of this command:

    ls -l /etc/alternatives/java*

In our case: sudo update-java-alternatives --set java-8-oracle update symlinks under /etc/alternatives to point to java-8-oracle executables.

Extras:

  • man <command>: start using man to read a really well written and detailed help on (almost) every shell command and its options (every command i mention in this little answer has a man page, try man update-java-alternatives).

  • apt-cache search <search_key>: query the APT cache to search for a package related with the search_key provided (can be the package name or some word in package description).

  • apt-cache show <package>: provides APT information for a specific package (package version, installed or not, description).

Answer from Giuseppe Ricupero on Stack Overflow
Top answer
1 of 15
149

UPDATE: installation without root privileges below


I advise you to not install packages manually on ubuntu system if there is already a (semi-official) repository able to solve your problem. Further, use Oracle JDK for development, just to avoid (very sporadic) compatibility issues (i've tried many years ago, it's surely better now).

Add the webupd8 repo to your system:

Copysudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

Install your preferred version of jdk (versions from java-6 to java-9 available):

Copysudo apt-get install oracle-java8-installer

You can also install multiple version of jdk, mixing openjdk and oracle versions. Then you can use the command update-java-alternatives to switch between installed version:

Copy# list available jdk
update-java-alternatives --list

# use jdk7
sudo update-java-alternatives --set java-7-oracle

# use jdk8
sudo update-java-alternatives --set java-8-oracle

Requirements

If you get add-apt-repository: command not found be sure to have software-properties-common installed:

Copysudo apt-get install software-properties-common

If you're using an older version Ubuntu:

Copysudo apt-get install python-software-properties

JDK installation without root privileges

If you haven't administrator rights on your target machine your simplest bet is to use sdkman to install the zulu certified openjdk:

Copycurl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java

NOTE: sdkman allow to install also the official Oracle JDK, although it's not a the default option. View available versions with:

Copysdk ls java

Install the chosen version with:

Copysdk install java <version>

For example:

Copysdk install java 9.0.1-oracle

Glossary of commands

  • sudo <command> [command_arguments]: execute a command with the superuser privilege.

  • add-apt-repository <PPA_id>: Ubuntu (just like every Debian derivatives and generally speaking every Linux distribution) has a main repository of packages that handle things like package dependencies and updating. In Ubuntu is possible to extend the main repository using a PPA (Personal Package Archive) that usually contains packages not available in the system (just like oracle jdk) or updated versions of available ones (example: LibreOffice 5 in LTS is available only through this PPA).

  • apt-get [install|update|upgrade|purge|...]: it's "the" command-line package handler used to manipulate the state of every repository on the system (installing / updating / upgrading can be viewed as an alteration of the repository current state).

In our case: with the command sudo add-apt-repository ppa:webupd8team/java we inform the system that the next repository update must retrieve packages information also from webupd8 repo.

With sudo apt-get update we actually update the system repository (all this operations requires superuser privileges, so we prepend sudo to the commands).

sudo apt-get install oracle-java8-installer

  • update-java-alternatives (a specific java version of update-alternatives): in Ubuntu several packages provides the same functionality (browse the internet, compile mails, edit a text file or provides java/javac executables...). To allows the system to choose the user favourites tool given a specific task a mechanism using symlinks under /etc/alternatives/ is used. Try to update the jdk as indicated above (switch between java 7 and java 8) and view how change the output of this command:

    ls -l /etc/alternatives/java*

In our case: sudo update-java-alternatives --set java-8-oracle update symlinks under /etc/alternatives to point to java-8-oracle executables.

Extras:

  • man <command>: start using man to read a really well written and detailed help on (almost) every shell command and its options (every command i mention in this little answer has a man page, try man update-java-alternatives).

  • apt-cache search <search_key>: query the APT cache to search for a package related with the search_key provided (can be the package name or some word in package description).

  • apt-cache show <package>: provides APT information for a specific package (package version, installed or not, description).

2 of 15
133

As you can see I only have java 1.7 installed (on a Ubuntu 14.04 machine).

Copyupdate-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64

To install Java 8, I did,

Copysudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

Afterwards, now I have java 7 and 8,

Copyupdate-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

BONUS ADDED (how to switch between different versions)

  • run the follwing command from the terminal:

sudo update-alternatives --config java

CopyThere 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   1071      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
* 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      manual mode

Press enter to keep the current choice[*], or type selection number:

As you can see I'm running open jdk 8. To switch to to jdk 7, press 1 and hit the Enter key. Do the same for javac as well with, sudo update-alternatives --config javac.

Check versions to confirm the change: java -version and javac -version.

🌐
GitHub
github.com › googlecolab › colabtools › issues › 4110
I can't download openjdk 18 (Java) correctly · Issue #4110 · googlecolab/colabtools
October 28, 2023 - Describe the current behavior When i try to install Java 18 say that (openjdk) Describe the expected behavior Download Java 18 and when i put !java -version say me that i'm in 18 What web browser you are using Chrome Additional context I...
Author   googlecolab
Top answer
1 of 3
5

[17-08-2022] thank to @nobody (see comment to the question)

For all older version use this link:

https://launchpad.net/~openjdk-r/+archive/ubuntu/ppa

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt update

and select your version:

sudo apt install openjdk-15-jdk

2 of 3
4

It gives no openjdk-15-jdk in the repos from ubuntu :)

sudo apt list | grep openjdk
[sudo] Passwort für k3ops: 

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

openjdk-11-dbg/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 amd64
openjdk-11-dbg/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 i386
openjdk-11-demo/focal-updates 11.0.9.1+1-0ubuntu1~20.04 amd64
openjdk-11-demo/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 i386
openjdk-11-doc/focal-updates,focal-updates,focal-security,focal-security 11.0.9.1+1-0ubuntu1~20.04 all
openjdk-11-jdk-headless/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 amd64
openjdk-11-jdk-headless/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 i386
openjdk-11-jdk/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 amd64
openjdk-11-jdk/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 i386
openjdk-11-jre-dcevm/focal 11.0.3+1-1 amd64
openjdk-11-jre-headless/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 amd64
openjdk-11-jre-headless/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 i386
openjdk-11-jre-zero/focal-updates 11.0.9.1+1-0ubuntu1~20.04 amd64
openjdk-11-jre-zero/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 i386
openjdk-11-jre/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 amd64
openjdk-11-jre/focal-updates,focal-security 11.0.9.1+1-0ubuntu1~20.04 i386
openjdk-11-source/focal-updates,focal-updates,focal-security,focal-security 11.0.9.1+1-0ubuntu1~20.04 all
openjdk-13-dbg/focal-updates 13.0.4+8-1~20.04 amd64
openjdk-13-dbg/focal-updates 13.0.4+8-1~20.04 i386
openjdk-13-demo/focal-updates 13.0.4+8-1~20.04 amd64
openjdk-13-demo/focal-updates 13.0.4+8-1~20.04 i386
openjdk-13-doc/focal-updates,focal-updates 13.0.4+8-1~20.04 all
openjdk-13-jdk-headless/focal-updates 13.0.4+8-1~20.04 amd64
openjdk-13-jdk-headless/focal-updates 13.0.4+8-1~20.04 i386
openjdk-13-jdk/focal-updates 13.0.4+8-1~20.04 amd64
openjdk-13-jdk/focal-updates 13.0.4+8-1~20.04 i386
openjdk-13-jre-headless/focal-updates 13.0.4+8-1~20.04 amd64
openjdk-13-jre-headless/focal-updates 13.0.4+8-1~20.04 i386
openjdk-13-jre-zero/focal-updates 13.0.4+8-1~20.04 amd64
openjdk-13-jre-zero/focal-updates 13.0.4+8-1~20.04 i386
openjdk-13-jre/focal-updates 13.0.4+8-1~20.04 amd64
openjdk-13-jre/focal-updates 13.0.4+8-1~20.04 i386
openjdk-13-source/focal-updates,focal-updates 13.0.4+8-1~20.04 all
openjdk-14-dbg/focal-updates 14.0.2+12-1~20.04 amd64
openjdk-14-dbg/focal-updates 14.0.2+12-1~20.04 i386
openjdk-14-demo/focal-updates 14.0.2+12-1~20.04 amd64
openjdk-14-demo/focal-updates 14.0.2+12-1~20.04 i386
openjdk-14-doc/focal-updates,focal-updates 14.0.2+12-1~20.04 all
openjdk-14-jdk-headless/focal-updates 14.0.2+12-1~20.04 amd64
openjdk-14-jdk-headless/focal-updates 14.0.2+12-1~20.04 i386
openjdk-14-jdk/focal-updates 14.0.2+12-1~20.04 amd64
openjdk-14-jdk/focal-updates 14.0.2+12-1~20.04 i386
openjdk-14-jre-headless/focal-updates 14.0.2+12-1~20.04 amd64
openjdk-14-jre-headless/focal-updates 14.0.2+12-1~20.04 i386
openjdk-14-jre-zero/focal-updates 14.0.2+12-1~20.04 amd64
openjdk-14-jre-zero/focal-updates 14.0.2+12-1~20.04 i386
openjdk-14-jre/focal-updates 14.0.2+12-1~20.04 amd64
openjdk-14-jre/focal-updates 14.0.2+12-1~20.04 i386
openjdk-14-source/focal-updates,focal-updates 14.0.2+12-1~20.04 all
openjdk-8-dbg/focal-updates 8u275-b01-0ubuntu1~20.04 amd64
openjdk-8-dbg/focal-updates,focal-security 8u275-b01-0ubuntu1~20.04 i386
openjdk-8-demo/focal-updates 8u275-b01-0ubuntu1~20.04 amd64
openjdk-8-demo/focal-updates,focal-security 8u275-b01-0ubuntu1~20.04 i386
openjdk-8-doc/focal-updates,focal-updates,focal-security 8u275-b01-0ubuntu1~20.04 all
openjdk-8-jdk-headless/focal-updates 8u275-b01-0ubuntu1~20.04 amd64
openjdk-8-jdk-headless/focal-updates,focal-security 8u275-b01-0ubuntu1~20.04 i386
openjdk-8-jdk/focal-updates 8u275-b01-0ubuntu1~20.04 amd64
openjdk-8-jdk/focal-updates,focal-security 8u275-b01-0ubuntu1~20.04 i386
openjdk-8-jre-headless/focal-updates 8u275-b01-0ubuntu1~20.04 amd64
openjdk-8-jre-headless/focal-updates,focal-security 8u275-b01-0ubuntu1~20.04 i386
openjdk-8-jre-zero/focal-updates 8u275-b01-0ubuntu1~20.04 amd64
openjdk-8-jre-zero/focal-updates,focal-security 8u275-b01-0ubuntu1~20.04 i386
openjdk-8-jre/focal-updates 8u275-b01-0ubuntu1~20.04 amd64
openjdk-8-jre/focal-updates,focal-security 8u275-b01-0ubuntu1~20.04 i386
openjdk-8-source/focal-updates,focal-updates,focal-security 8u275-b01-0ubuntu1~20.04 all
uwsgi-plugin-jvm-openjdk-11/focal 2.0.18-11ubuntu1 amd64
uwsgi-plugin-jwsgi-openjdk-11/focal 2.0.18-11ubuntu1 amd64
uwsgi-plugin-ring-openjdk-11/focal 2.0.18-11ubuntu1 amd64
uwsgi-plugin-servlet-openjdk-11/focal 2.0.18-11ubuntu1 amd64

Ups better you use "apt search openjdk" for the correct command, the first is bad code :P

🌐
Reddit
reddit.com › r/linux4noobs › unable to install open java
r/linux4noobs on Reddit: Unable to install open Java
February 9, 2019 -

I am following instructions from here https://linuxconfig.org/how-to-install-java-on-ubuntu-18-04-bionic-beaver-linux but I get "E: Unable to locate package openjdk-8-jdk" in terminal.

Also if i type "java" I get

sudo apt install default-jre
sudo apt install openjdk-11-jre-headless sudo apt install openjdk-8-jre-headless

None of these work either. "E: Package 'default-jre' has no installation candidate"

🌐
Reddit
reddit.com › r/linux4noobs › cant install java on debian
r/linux4noobs on Reddit: Cant install java on debian
October 14, 2024 -

If i try to install using sudo apt-get install openjdk i get unable to locate package openjdk and if i try to add a repo i get the error in the photo so i cant install java using this repo i found in a tutorial

🌐
Google Support
support.google.com › chromebook › thread › 52926102 › errors-while-installing-openjdk-8
Errors while installing OpenJDK 8 - Chromebook Community
Skip to main content · Chromebook Help · Sign in · Google Help · Help Center · Community · Chromebook · Terms of Service · Submit feedback · Send feedback on
🌐
Brainly
brainly.com › computers and technology › high school › why is debian unable to locate the package `openjdk-18-jre-headless`?
[FREE] Why is Debian unable to locate the package `openjdk-18-jre-headless`? - brainly.com
November 19, 2023 - Package Availability: The package might not be included in the default repositories configured on your system. Debian relies on these repositories to provide software packages, and if openjdk-18-jre-headless is not in the repository list, Debian ...
Find elsewhere
🌐
Linux Mint Forums
forums.linuxmint.com › board index › main edition support › software & applications
openjdk-22<SOLVED> - Linux Mint Forums
November 17, 2024 - These days if I'm not mistaken coders handle multiple versions of java with the help of sdkman but, anyway, skip openjdk 22. It has gone already EoL. ... Don't bother with repository, just use SDKMAN and solve all your problems. https://sdkman.io/ ... does sdkman have an autoupdate for installed jdks?
🌐
GitHub
github.com › replicate › cog › issues › 615
Trying to install Java 8 - Unable to locate package openjdk-8-jdk · Issue #615 · replicate/cog
May 14, 2022 - I am trying to install javasdk8 in my cog file for using spark nlp from within the docker. it fails with the following error ` => ERROR [stage-0 4/13] RUN --mount=type=cache,target=/var/cache/apt apt-get update -qq && apt-get install -qq...
Author   replicate
🌐
Its Linux FOSS
itslinuxfoss.com › home › fix: unable to locate package openjdk 8 jdk
Fix: unable to locate package openjdk 8 jdk – Its Linux FOSS
December 8, 2022 - The below script will update the system packages to load updated packages on the system repository: ... The OpenJDK 8 version is available through the PPA repository.
🌐
Untitled Publication
8thesource.hashnode.dev › unable-to-locate-package-openjdk-8-jre
Unable to Locate Package openjdk 8 jre - Untitled Publication
July 28, 2022 - Ubuntu Server does not include OpenJDK by default, which implies that when you install Ubuntu Server, it will not include OpenJDK. You must manually install JDK if you wish to utilise it.
🌐
HowtoForge
howtoforge.com › home › how to install java openjdk and oracle jdk on ubuntu 22.04
How to Install Java OpenJDK and Oracle JDK on Ubuntu 22.04
Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-18-openjdk-amd64/bin/java 1811 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode 2 /usr/lib/jvm/java-18-openjdk-amd64/bin/java 1811 manual mode 3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode 4 /usr/lib/jvm/jdk-18/bin/java 100 manual mode Press
Top answer
1 of 9
53

Command Line option - Ubuntu

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

Then in terminal

Copysudo apt-get install oracle-java8-installer

When there are multiple Java installations on your System, the Java version to use as default can be chosen. To do this, execute the following command.

Copysudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws

Edit - Manual Java Installation

Download oracle jdk

Copyhttp://www.oracle.com/technetwork/java/javase/downloads/index.html

Extract zip into desired folder

Copy e.g  /usr/local/  after extract /usr/local/jdk1.8.0_65

Setup

Copysudo update-alternatives --install  /usr/bin/java java /usr/local/jdk1.8.0_65/bin/java 1
sudo update-alternatives --install  /usr/bin/javac javac /usr/local/jdk1.8.0_65/bin/javac 1
sudo update-alternatives --install  /usr/bin/javaws javaws /usr/local/jdk1.8.0_65/bin/javaws 1

sudo update-alternatives --set  java /usr/local/jdk1.8.0_65/bin/java
sudo update-alternatives --set  javac /usr/local/jdk1.8.0_65/bin/javac
sudo update-alternatives --set  javaws /usr/local/jdk1.8.0_65/bin/javaws

Edit /etc/environment set JAVA_HOME path for external applications like Eclipse and Idea

2 of 9
11

For me non of the above worked and I had to do as below, and it worked,

sudo -E add-apt-repository ppa:openjdk-r/ppa

and then,

sudo apt-get update

sudo apt-get install openjdk-8-jdk

Reference: https://askubuntu.com/questions/644188/updating-jdk-7-to-8-unable-to-locate-package

🌐
GitHub
github.com › elastic › elasticsearch › issues › 107613
Unable to locate package openjdk-11-jre-headless 7.17 ubuntu-2004-aarch64 · Issue #107613 · elastic/elasticsearch
April 18, 2024 - Exit-code 17 when calling ...ry/ubuntu:18.04@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98 #4 DONE 0.0s #5 [geoip-fixture 2/3] RUN apt-get update -qqy #5 CACHED #6 [geoip-fixture 3/3] RUN apt-get install -qqy openjdk-11-jre-headless #6 3.269 E: Unable to locate package ...
Author   elastic
🌐
Linode
linode.com › docs › guides › how-to-install-openjdk-ubuntu-22-04
Installing OpenJDK on Ubuntu 22.04 | Linode Docs
March 20, 2023 - To install release 11 of OpenJDK, use the command sudo apt-get install openjdk-11-jdk. Use sudo apt-get install openjdk-18-jdk to install release 18.