Linux執行jsp命令的時候報錯:-bash: jps: command not found

2022-10-22 21:01:16

前言:在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許可權下一鍵刪除

冷知識,
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檔案,區別是:
  1. tar.gz:
    本質上就是一種壓縮包,裡面的一些設定都需要我們手動操作
  2. rpm:
    Rethat紅帽公司釋出的一個功能,redhat package manager,.rpm更像一個軟體安裝包,意為tar.gz的傻瓜式安裝,全自動化
  3. 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

  • 成功!!!

總結:

  1. jps命令無法執行,原因在於java環境變數設定有誤
  2. linux有自帶的open-jdk
  3. 軟參照的使用:ln -s