前言
本篇是筆者照著How to Install Apache Zeppelin on CentOS 7的教學安裝Java。
原文中的dead link己被替換成可以用的連結。
步驟
下載jdk的rpm包
可以直接使用以下指令下載:
wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.rpm -O jdk-8u191-linux-x64.rpm
也可以前往Java SE Downloads,到這裡要選擇下載8或11版。
筆者選擇的是8版,接著到Java SE Development Kit 8 Downloads選擇合適的版本安裝:
記得要先Accept License Agreement才能下載。
使用yum來安裝
sudo yum -y localinstall jdk-8u191-linux-x64.rpm
設定環境變量
首先查出java的安裝路徑:
readlink -f $(which java)
在筆者機器上的輸出(筆者試了兩台機器):
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/bin/java
/usr/java/jdk1.8.0_191-amd64/jre/bin/java
刪掉/bin/java就是jre所在目錄:
readlink -f $(which java) | rev | cut -d/ -f3- | rev
或是
readlink -f /usr/bin/java | sed "s:bin/java::"
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre
/usr/java/jdk1.8.0_191-amd64/jre
而把/jre/bin/java拿掉就是java根目錄:
readlink -f $(which java) | rev | cut -d/ -f4- | rev
或是
readlink -f /usr/bin/java | sed "s:jre/bin/java::"
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64
/usr/java/jdk1.8.0_191-amd64
上面找出了jre目錄及java根目錄,於是就可以來設定JRE_HOME,JAVA_HOME環境變量:
echo "export JRE_HOME=`readlink -f /usr/bin/java | sed "s:bin/java::"`" >> ~/.bash_profile
echo "export JAVA_HOME=`readlink -f /usr/bin/java | sed "s:jre/bin/java::"`" >> ~/.bash_profile
source ~/.bash_profile
查看java版本
java -version
openjdk version “1.8.0_191”
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
問題排查
如果安裝完後使用java
,出現以下的訊息:
./java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
這代表下載的rpm檔己毀損,所以安裝失敗。遇到這種情況可以重新下載安裝。