前言:在zookeeper學習的時候,執行jsp命令查看zookpper運行狀態的時候發現報錯: -bash: jps: command not found 翻閱了一大批文章,不是東拼西湊,就是缺斤少兩,於是乎,本人萌生了第一次寫博客的想法,復盤的同時,順便記錄一下此次踩坑的經過,開始吧,GOGOG ...
前言:在zookeeper學習的時候,執行jsp命令查看zookpper運行狀態的時候發現報錯:
-bash: jps: command not found
翻閱了一大批文章,不是東拼西湊,就是缺斤少兩,於是乎,本人萌生了第一次寫博客的想法,復盤的同時,順便記錄一下此次踩坑的經過,開始吧,GOGOGO!
- 發現報錯,根據查閱到的資料說明:
產生的原因是Java的環境變數出錯
- 執行 whereis java
-
發現一串奇怪的路徑,說明這隻是java的執行路徑,而非java的安裝路徑。
-
執行 which java 來獲取java路徑:
- 我們發現又一個奇怪的路徑,其實這是對java路徑的一個軟鏈接,查詢此軟鏈接的指向:
- 查詢這個指向的真實源目錄:
-
終於我們獲取到了java的安裝路徑,但這個路徑為嘛有一大串???原因是這是CentOS自帶的open-jdk...
-
首先我們得將它給幹掉:
rpm -qa | grep java #查看java文件
sudo rpm -qa | grep java | xargs rpm -e --nodeps #root許可權下刪除所有java文件
冷知識,
sudo進入root模式:
ln -s target_file_name source_file_name #建立軟鏈接
rm -rf xxxx/ 加了個/ #這個是刪除文件夾
rm -rf xxxx 沒有/ #這個是刪除軟鏈接
- 於是只好去Oracle官網下載Linux版本的jdk並安裝:
https://www.oracle.com/java/technologies/downloads/#java8-linux
- 發現下載的時候版本眼花繚亂,分為tar.gz、rpm、yum文件,區別是:
- tar.gz:
本質上就是一種壓縮包,裡面的一些配置都需要我們手動操作- rpm:
Rethat紅帽公司發佈的一個功能,redhat package manager,.rpm更像一個軟體安裝包,意為tar.gz的傻瓜式安裝,全自動化- yum:
rpm的究極傻瓜版...類似於java-maven的作用,自動下載、自動安裝、自動裝配,甚至可以補丟失的依賴包,一般使用這個命令可以查看對應插件官網的目前能下載的插件列表,然後再選擇進行安裝,十分的方便
-
為了加深理解,採用tar.gz包,來手動安裝jdk8。將該壓縮包放到/usr/local/jdk目錄下(手動建立jdk目錄),jdk目錄需要自己手動創建,也可以叫java,名字自己隨意取(見名知意),然後解壓該壓縮包,輸入如下指令:
tar zxvf jdk-8u181-linux-x64.tar.gz
冷知識,
/usr/local 文件一般存放給另一個主機存放額外安裝軟體的目錄,一般是通過編譯源碼方式安裝的程式,如jdk、nginx、rabbitmq;
/opt 則是存放額外安裝軟體的目錄,如mysql、redis、zookeeper;
/usr 用戶的很多應用程式和文件都放在這個目錄裡面
-
接下來配置java環境變數:
vim /etc/profile
打開配置文件追加以下內容:
冷知識,
(shift+g快速定位到末尾,i進行編輯,wq!保存退出)
/etc 存放所有的系統管理所需要的配置文件,子目錄my.conf
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_351 #jdk安裝目錄
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
-
刷新profile文件,不必重啟linux:
source /etc/profile
-
測試是否安裝成功:
java -version
javac
-
測試jps指令:
jps
- 成功!!!
總結:
- jps命令無法執行,原因在於java環境變數配置有誤
- linux有自帶的open-jdk
- 軟鏈接的使用:ln -s