本主要是記錄一下linux下安裝JDK 的過(guò)程. 目前只包含在Linux安裝OpenJDK. 后面內(nèi)容會(huì)逐漸豐富.
主要以CentOS 7和Ubuntu 18.04為例安裝Open-jdk-8:
# CentOS 7:
$ sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
# Or on Ubuntu:
$ sudo apt-get -y install openjdk-8-jdk
等安裝完成之后再運(yùn)行如下命令:
$ cd $(dirname $(dirname $(readlink $(readlink $(which javac)))))
$ pwd
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64
上面CentOS輸出的open-jdk-8的安裝目錄端三。
在ubuntu18.04上的輸出可能是這樣的:
/usr/lib/jvm/java-8-openjdk-amd64
還可以像下面一樣來(lái)做, 這樣就可以不關(guān)心是哪個(gè)OS:
$ JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))
$ echo $JAVA_HOME
接著我我們給它建一個(gè)軟連接十饥,方便我們以后更換其它jdk:
先回到JDK安裝目錄的上一層
# get back to the parent directory of open-jdk installation directory:
$ cd ..
# create a soft link named java_latest
$ sudo ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64 java_latest
$ cd java_latest
$ pwd
/usr/lib/jvm/java_latest
現(xiàn)在我們修改~/.bash_profile來(lái)添加JAVA_HOME和PATH. 在Ubuntu18.04里面,這個(gè)文件是~/.profile. 當(dāng)然也可以修改~/.bashrc來(lái)達(dá)到同樣的效果。
vim ~/.bash_profile
在文件的最后添加:
export JAVA_HOME=/usr/lib/jvm/java_latest
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib:\$JAVA_HOME/lib/tools.jar
最后再來(lái)檢查一下婆赠, 看看open-jdk-8是否安裝成功:
$ java -version
openjdk version "1.8.0_201"
OpenJDK Runtime Environment (build 1.8.0_201-b09)
OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)
$JAVA_HOME
/usr/lib/jvm/java_latest
是不是跟你預(yù)期的一樣呢泻肯?
如果你是個(gè)java程序中,相信這些操作在你java development生涯會(huì)遇到超過(guò)50次拧揽。
如果在執(zhí)行完yum安裝之后,執(zhí)行一下下面的代碼
JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))
echo "export JAVA_HOME=$JAVA_HOME" >> ~/.bashrc
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc
JAVA_HOME以及$JAVA_HOME/bin會(huì)被自己添加到~/.bashrc的尾部. 這樣就不用直接編輯~/.bashrc文件啦.(隨便提一下,上面最后兩行的單引號(hào)和雙引號(hào)的作用不同, 不可互換.)
總結(jié)
最后來(lái)個(gè)精簡(jiǎn)而又完整的命令列表:
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))
echo $JAVA_HOME
cd $JAVA_HOME
cd ..
sudo ln -s $JAVA_HOME default-jdk
cd default-jdk
JAVA_HOME=$(pwd)
echo "export JAVA_HOME=$JAVA_HOME" >> ~/.bashrc
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc
以上是在CentOS 7上的操作剃盾。 而在Ubuntu/Deepin上的操作,除jdk的包名不同淤袜,其它都是一樣的痒谴。等下次在Ubuntu在做這樣的操作時(shí),再把它也記到這里铡羡。最后還會(huì)寫一個(gè)ansible腳本