天天看點

問題:啟動tomcat報找不到JAVA_HOME或者JRE_HOME環境變量的問題

一、錯誤來源

在非linux系統上(即外部)啟動tomcat時顯示的錯誤

二、報錯原文

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program

三、錯誤譯文

JAVA_HOME和JRE_HOME環境變量都沒有定義 運作這個程式至少需要這些環境變量中的一個

四、錯誤思索

我明明在/etc/profile這個檔案裡面添加了java和tomcat的環境變量啊,為什麼還出錯,而在伺服器上啟動tomcat就不報這個錯誤

五、粗略分析錯誤原因

在伺服器上啟動tomcat不報錯是因為啟動tomcat時區/etc/profile檔案裡面找到了java和tomcat的環境變量,是以順利啟動,而在外部啟動tomcat時,tomcat程式首先調用startup.sh腳本檔案,startup.sh又去調用catalina.sh這個腳本檔案,而catalina.sh腳本檔案又會去setclasspath.sh這個腳本檔案裡面尋找tomcat變量環境,這是因為setclasspath.sh檔案就是tomcat變量環境腳本,這是因為這個腳本預設是沒有在腳本開頭申請java和jdk的變量環境劉靜的,是以報錯,setclasspath.sh的路徑是: /usr/local/tomcat/bin/setclasspath.sh (因為我的tomcat是裝在/usr/local路徑下了,是以我的是這個,你們要按照你們的安裝路徑在查找)

六、檢視setclasspath.sh腳本檔案,精确分析原因

setclasspath.sh腳本原文以及中文解釋如下:
說明:通過對這個腳本的分析,我們可以看到,這個腳本就做了一件事情,檢查各種變量是否指派,驗證tomcat啟動停止需要涉及到的檔案,保障tomcat順利啟動停止。而我們報錯就是因為它在全文搜尋了半天結果一直找不到JRE_HOME和JAVA_HOME這兩個變量到底在哪。 七、解決方案 在setclasspath.sh腳本檔案的所有沒有注釋的行的開頭加入截圖中的兩行即可:
問題:啟動tomcat報找不到JAVA_HOME或者JRE_HOME環境變量的問題
最後重新開機tomcat就解決了問題。