Linux Java

From Ever changing code
Jump to navigation Jump to search

Java 8

Important Oracle Java License Update The Oracle Java License has changed for releases starting April 16, 2019. The new Oracle Technology Network License Agreement for Oracle Java SE is substantially different from prior Oracle Java licenses. The new license permits certain uses, such as personal use and development use, at no cost -- but other uses authorized under prior Oracle Java licenses may no longer be available. Please review the terms carefully before downloading and using this product. An FAQ is available here.

Commercial license and support is available with a low cost Java SE Subscription.

Oracle also provides the latest OpenJDK release under the open source GPL License at jdk.java.net.

Ubuntu: Oracle Java 8 JDK - Java Development Kit - apt-get

Silent install Java 6/7/8/9 using WebUpd8 team's PPA

#sudo apt-get install -y python-software-properties #if required
sudo apt-get install -y debconf-utils
sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
sudo apt-get install -y oracle-java8-installer

CentOS: Oracle Java 8u171 JDK - Java Development Kit - rpm

This methos does not require manually accepting the license

wget --header "Cookie: oraclelicense=accept-securebackup-cookie" [link from download page]
#jdk-8u171
wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.rpm
sudo yum -y localinstall jdk-8u171-linux-x64.rpm

Linux: Oracle Java JDK 9 from tar.gz

wget http://download.java.net/java/GA/jdk9/9/binaries/jdk-9+181_linux-x64_bin.tar.gz

Linux: Oracle Java JDK 10.0.1 from tar.gz

Go to Oracle and accept their license then you can download the file with cookie details provided.

#not verified if it's working
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://link_copied_from_site"
wget --no-check-certificate --no-cookies --header \
"Cookie: oraclelicense=accept-securebackup-cookie;" \
"http://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8c52526dc134031e/serverjre-10.0.1_linux-x64_bin.tar.gz"
sudo tar -xzvf serverjre-10.0.1_linux-x64_bin.tar.gz -C /usr/local
sudo alternatives --install /usr/bin/java java /usr/local/jdk-10.0.1/bin/java 2
sudo alternatives --config java
sudo bash -c "echo export PATH=$PATH:/usr/local/jdk-10.0.1/bin >> /etc/environment" #PATH update
sudo bash -c "echo export JAVA_HOME=/usr/local/jdk-10.0.1 >> /etc/environment" #JAVA_HOME set up

Ubuntu: OpenJDK

You can use this Java open source installation when Oracle licensing causing limitations.

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


Ubuntu 20.04 provides code default version. Read more at DigitalOcean

$ sudo apt install default-jre
openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)

Ubuntu: Oracle Java 7 JDK - zip file install

This will treat how to install Oracle Java in Ubuntu. This method does not use any package management software. Use a link in the references section for other options.

Download the 32-bit or 64-bit Linux from "http://www.oracle.com/technetwork/java/javase/downloads/index.html" "compressed binary file" - it has a ".tar.gz" file extension.

Uncompress it

tar -xvf jdk-7u80-linux-x64.tar.gz (32-bit)
tar -xvf jdk-7u80-linux-x64.tar.gz (64-bit)


The JDK 7 package is extracted into ./jdk1.7.0_80 directory.

Now move the JDK 7 directory to /usr/lib

sudo mkdir -p /usr/lib/jvm
sudo mv ./jdk1.7.0_80 /usr/lib/jvm/


Optional: Environment variables

$ sudo vi /etc/environment      #add environment variables system wise, all users
PATH="search/paths''':/usr/lib/jvm/jdk-oracle/bin'''"
JAVA_HOME=/usr/lib/jvm/jdk-oracle

Log log out and log back in, you should have Java available to you now.

Now run

sudo update-alternatives --install "/usr/bin/java"   "java"   "/usr/lib/jvm/jdk1.7.0_80/bin/java"   1
sudo update-alternatives --install "/usr/bin/javac"  "javac"  "/usr/lib/jvm/jdk1.7.0_80/bin/javac"  1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0_80/bin/javaws" 1


This will assign Oracle JDK a priority of 1, which means that installing other JDKs will replace it as the default. Be sure to use a higher priority if you want Oracle JDK to remain the default.

Correct the file ownership and the permissions of the executables:

sudo chmod a+x /usr/bin/java
sudo chmod a+x /usr/bin/javac
sudo chmod a+x /usr/bin/javaws
sudo chown -R root:root /usr/lib/jvm/jdk1.7.0_80


Run

sudo update-alternatives --config java


You will see output similar to the one below - choose the number of jdk1.7.0_80 - for example 3 in this list (unless you have have never installed Java installed in your computer in which case a sentence saying "There is nothing to configure" will appear):

$ sudo update-alternatives --config java


There are 3 choices for the alternative java (providing /usr/bin/java).

Selection    Path                                  Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-oracle1/bin/java   1047      auto mode
  1            /usr/bin/gij-4.6                       1046      manual mode
  2            /usr/lib/jvm/java-6-oracle1/bin/java   1047      manual mode
  3            /usr/lib/jvm/jdk1.7.0_80/bin/java      1         manual mode

Press enter to keep the current choice [*], or type selection number: 3
 update-alternatives: using /usr/lib/jvm/jdk1.7.0_80/bin/java to provide /usr/bin/java (java) in manual mode


Repeat the above for:

sudo update-alternatives --config javac
sudo update-alternatives --config javaws


Verify

$ java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

References