Reputation: 6263
So I just installed Ubuntu, and this is my first time working in a Linux environment, so bear with my noobishness here.
Anyway, I downloaded the Java 8 JDK directly from Oracle, but I understand there's also an OpenJDK for Java 8 as well. I have two questions.
What is the difference between the Oracle version and OpenJDK. Pros/Cons?
When I try and get OpenJDK 8, I can't. I'm pasting the terminal command and the error message I get here, hoping for advice. Again, very new to Linux, been on my first Linux distro ever for less than an hour here at this point.
user@computer:~/Java$ sudo apt-get install openjdk-8-jdk
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package openjdk-8-jdk
Any help would be appreciated. In the meantime, I'm just gonna use the Oracle package. Thanks.
Edit:
So, now I have a new problem. I installed OpenJDK 7, it came with Maven and just installed before I realized I was getting a two-for-one deal. Now I have JDK 7, and Eclipse, and Maven, and they're all working, but I'm stuck on JDK 7 rather than 8.
I saw that there's a link below, I intend to check it out in the morning, it's 2am and I'm tired right now. Any other advice for this new issue would be appreciated, otherwise I will definitely be checking out that link first thing in the morning.
Upvotes: 141
Views: 366371
Reputation: 1
If you are using Azure VM Try this
sudo apt install openjdk-8-jdk-headless
This will install java 1.8 version
Upvotes: 0
Reputation: 131
openjdk-8 is now out of support so I used AdoptOpenJDK8 instead.
Here is the command:
sudo apt-get update --yes && \
apt-get install --yes gnupg2 apt-transport-https && \
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A1EAC8B7 && \
echo 'deb https://rpardini.github.io/adoptium-deb-installer stable main' > /etc/apt/sources.list.d/rpardini-adoptium.list && \
apt-get update --yes && \
apt-get install --yes adoptium-8-installer
based on https://github.com/rpardini/adoptium-deb-installer?tab=readme-ov-file#for-debian
Upvotes: 2
Reputation: 1619
Run the below commands... Issue resovled :)
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update -y
sudo apt-get install openjdk-8-jdk -y
Upvotes: 2
Reputation: 9
Personally I tried a bunch of these solutions none of which worked for me, eventually though I found this worked.
sudo apt-add-repository 'deb http://security.debian.org/debian-security stretch/updates main'
Then to install openjdk 8.
sudo apt install openjdk-8-jdk
Upvotes: 0
Reputation: 1
I had the same problem on windows10 when i installed Ubuntu as Subsystem (terminal) on win10 , I tried many things to fix this issue, but I could download openjdk-8-jdk by installing Kali Linux (terminal) instead of Ubuntu on win10.
Upvotes: -3
Reputation: 1
Try; openjdk-11-jdk and default-jdk
Or :
Update all packages with :
Sudo apt-get install updates
Then go to root , download the java version you want and extract. (If you don't know manual install try the recommended codes in the discussion)
Change the environment libraries (java) with oracle.com guides for each,long process but magical
Upvotes: -2
Reputation: 169
i have same problem by installing
openjdk-8-jdk
on ubuntu and on kali but failed then i found program is not listed in the repository list so i solved it by adding PPA (personal package archive These are unofficial repositories).
sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository 'deb http://security.debian.org/debian-security stretch/updates main'
sudo apt install openjdk-8-jdk
Upvotes: 6
Reputation: 6337
Probably coming in late, but it saved me a lot:
On Ubuntu, Search and click on Software and Updates. The following page loads. Make sure you check the appropriate boxes under Downloadable from the internet. When these are unchecked, several packages don't get found.
Upvotes: 1
Reputation: 129
I've been searching the internet for an answer on this. I have a Debian 10 server installation.
I had the same problem with installing openjdk-8-jdk. An apt install
resulted in package not found
.
The other comment here helps you install the oracle jdk 8, but I wanted to use the openjdk 8.
What I discovered is that for Debian 10, by default, only the openjdk-11 packages are installable without adding a ppa, however for Debian 9 (stretch), by default, you can install openjdk-8 packages. Therefore, adding the stretch Debian ppa allowed me to install openjdk-8 packages.
Adding the Debian stretch ppa.
sudo apt-add-repository 'deb http://security.debian.org/debian-security stretch/updates main'
Then update and install openjdk-8-jdk
sudo apt update && sudo apt install openjdk-8-jdk
Upvotes: 12
Reputation: 31
After adding the JDK
repo, before Installing you might want to run an update first so the repo can be added
run
apt update
an then continue with your installation
sudo apt install adoptopenjdk-8-hotspot
Upvotes: 0
Reputation: 605
I was having the same issue and tried all of the solutions on this page but none of them did the trick.
What finally worked was adding the universe
repo to my repo list. To do that run the following command
sudo add-apt-repository universe
After running the above command I was able to run
sudo apt install openjdk-8-jre
without an issue and the package was installed.
Hope this helps someone.
Upvotes: 2
Reputation: 271
sudo apt-get update
sudo apt-get install openjdk-8-jdk
this should work
Upvotes: 16
Reputation: 6272
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:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Install your preferred version of jdk (versions from java-6 to java-9 available):
sudo 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:
# 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:
sudo apt-get install software-properties-common
If you're using an older version Ubuntu:
sudo 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:
curl -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:
sdk ls java
Install the chosen version with:
sdk install java <version>
For example:
sdk 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).
Upvotes: 149
Reputation: 2682
I'm getting OpenJDK 8 from the official Debian repositories, rather than some random PPA or non-free Oracle binary. Here's how I did it:
sudo apt-get install debian-keyring debian-archive-keyring
Make /etc/apt/sources.list.d/debian-jessie-backports.list
:
deb http://httpredir.debian.org/debian/ jessie-backports main
Make /etc/apt/preferences.d/debian-jessie-backports
:
Package: *
Pin: release o=Debian,a=jessie-backports
Pin-Priority: -200
Then finally do the install:
sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk
Upvotes: 14
Reputation: 4750
As you can see I only have java 1.7 installed (on a Ubuntu 14.04 machine).
update-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,
sudo 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,
update-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)
sudo 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 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
.
Upvotes: 133