Tomca啟動閃退問題解決(八大類)

Tomcat 啟動時出現黑屏一閃而過的現象原因有很多,但通常都涉及幾個方法:

一、Java環境不對,Tomcat 不同版本需要的Java環境不同。

51907a08897b4c3198d65c4ed87dd340.png

有時tomcat版本能夠正常安裝,但啟動時檢測到java 版本不對就會出現啟動黑屏一閃而過的現象。例如:tomcat 10.1-M14版本能夠在java version “1.8.0_131”下用命令提示符安裝成功,運行時卻出現啟動黑屏一閃而過的現象,查瞭很久都沒有發現原因,最近官方出瞭安裝提示才明白問題出在運行需要Java 11 或更高版本環境。

檢查Java版本是否適合安裝,按windows + R 啟用cmd命令,打開命令提示符,輸入“java -version”,回車,出現jdk版本,

98db7b92f3b049a2aa0e68d6e67cfc3b.png

如果不適合,請先安裝相應的Java版本。

當前Java SE Development Kit 最新版本是18.0.1.1

下載地址:Java Archive Downloads – Java SE 18或http://openjdk.java.net/install/index.html

Java SE Development Kit 18.0.1.1

a9a3032652a5424a93df0f342459340d.png

二、環境變量沒有配置好

Tomcat需要配置好JRE才能正常運行。一般情況下,啟動閃屏崩潰是因為找不到JRE路徑,也就是說環境變量在安裝JDK的時候沒有配置好。

檢查jdk是否安裝,按windows + R 啟用cmd命令,打開命令提示符,進入命令提示符,輸入“java -version”,回車,出現jdk版本,表示安裝成功,檢查版本是否合適,參考上文Java環境和tomcat版本對應關系。

檢測jdk配置有沒出錯,可以在tomcat安裝目錄\bin下,startup.bat文件最後加上pause命令

91cf547a3f474cdcb164785164323a48.png

啟動運行tomcat,黑屏會需要按任意鍵才結束如圖:

bcdf298a32134a619ddee5ed424c0e22.png

如能如圖正常顯示Using路徑,說明環境變量設置沒有問題,可跳過此步驟。

如發現問題,可檢查相關環境變量配置

358ef5546ca645af96e18b7461bb6ef7.png

① 配置環境變量,本機電腦—>屬性—>高級—>點擊環境變量
②在系統變量裡點擊新建—>添加變量:

③ 輸入變量名,變量值:
變量名:CATALINA_HOME
變量值:c:\00\ tomcat10_021
(變量值為tomcat安裝路徑,就是你剛剛解壓安裝tomcat的那個文件夾路徑)

ca84896e0cd64eaeaa48407ac0863f35.png

④ 在系統變量裡找到Path,雙擊打開:

新建環境變量,輸入:%CATALINA_HOME%\bin

或在原來path列表中添加%CATALINA_HOME%\lib;%CATALINA_HOME%\bin

⑤打開cmd,選擇以管理員的身份運行:(Windows鍵+R,輸入cmd,回車)

⑥進入tomcat安裝位置\bin目錄,輸入:startup,回車

⑦打開瀏覽器,輸入:http://localhost:8080/
(出現以下頁面,證明安裝配置成功。)

4ede9bf695654567b5daec019c2645f7.png

 三、Tomcat端口被占用

Tomcat默認需要使用8080等幾個端口,如果端口被占用,tomcat啟動時就會崩潰,此時需要查找是哪個進程占用瞭8080端口。

其實還可以通過查看Tomcat終端輸出日志,找到Tomcat目錄下的logs目錄中catalina當天的日志,例如:catalina.2022-05-19.log文件,如果在日志出錯信息中看到:Address already in use: bind說明是端口占用瞭。

在cmd中查看8080有沒有被占用,找出占用8080端口的進程

按windows + R 啟用cmd命令,打開命令提示符,

輸入:netstat -ano | findstr “8080”

87edf5f106914d329ca9f71430b64de4.png

如果端口沒有被占用,就會顯示空值;

如果你修改過tomca t端口設置,請查找你的tomcat使用端口,例如,曾把tomcat端口修改成9080,此時查詢9080端口使用情況的命令為:

輸入:netstat -ano | findstr “9080”

89ce37792c174671be6c48cebc60dd1a.png

顯示為9080端口被PID值為15316的進程所占用。

2 接下來可以在任務管理器裡查看該PID值進程號所對應的進程:

任務管理器菜單欄中的點擊【選項】——勾選” 【前端顯示】。

任務管理器菜單欄中的點擊-【查看】-【選擇列】中勾選“PID”

4e5ddd28c93b4bf589d525a58b2ad7d8.png

發現占用9080端口,PID值為15316的進程為java.exe

3、判斷該進程是否有用,如果沒有用,接著直接右鍵結束該進程即可。

或者,直接在命令提示框界面輸入要結束的PID值進程,例如:

要終止PID號為1196的進程,

可輸入:Taskkill/PID 1196

a3b83ab0f6d941b68bbf5170fa172187.png

如果該進程確實有用不能結束,那麼可考慮更換tomcat使用的端口

打開:Tomcat的安裝目錄\ conf \ server.xml

找到下面這行代碼:

    <Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

8c22a5c440da4f0e8fee3a26197fc4cf.png

將8080端口改為你所需要的端口地址,例如,現在改為9080;

    <Connector port="9080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

813132ab290d4a46a4e6caf083d8e76d.png

4、在Tomcat目錄\bin中找到“startup.bat”啟動Tomcat

5、然後打開瀏覽器,輸入:http://localhost:9080,就可以發現Tomcat正常啟動瞭。

5aee881ece364284ae24a0958c82f97b.png

除8080端口外Tomcat還會占用8005,8009和8443端口。如果這4個端口已被占用,可以修改為使用其它端口。詳細見:Tomcat端口配置(詳細)

四、配置文件編碼問題

Tomcat啟動時會調用幾個相關配置文件,如果裡面出現瞭不是UTF-8的字符,或者文件保存時的編碼格式不是UTF-8,tomcat編譯時就會出錯。就算是註釋行內也要仔細檢查。

出錯現象:

Tomcat出現啟動時黑屏一閃而過的現象,查詢catalina log日志,發現有以下出錯信息:

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)

30-May-2022 23:57:18.015 嚴重 [main] org.apache.catalina.startup.Catalina.start 無法啟動服務器,服務器實例未配置

30-May-2022 23:57:44.468 警告 [main] org.apache.catalina.startup.Catalina.parseServerXml 無法從[此處路徑省略\conf\server.xml]加載服務器配置

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字節的 UTF-8 序列的字節 1 無效。

分析:

查看相關的conf\server.xml文件,發現是因為註釋瞭一些代碼,在代碼行裡加入瞭中文說明,所以會出現無效UTF-8 序列字節

解決方法:

刪掉中文,改成英語或拼音註釋。將文件保存支持UTF-8的格式。

重啟tomcat後故障解決。

五、啟動時需要的配置文件編寫出錯

所有相關的配置文件都要仔細檢測,語法格式等出錯都會出現tomcat啟動後閃退的現象。例如是否按規范設置JAVA_HOME變量名,路徑設置時 \ 或 / 是否正確,註意路徑設置時後面不用多加“\” 或者 “;”……..

有沒有和防火墻或其他app沖突。

如果tomcat內存配置有誤也會導致tomcat閃退(在Catalina文件裡,內存配置有錯誤),解決辦法:找到配置內存的語句,刪除錯誤,重新配置。

六、部分相關文件丟失

因意外或其他原因,tomcat 或jdk的一些jar文件被打包成pack格式,造成tomcat 啟動缺jar包,報錯NoClassDefFound。

解決:修復jdk,補回jar

七、免安裝的tomcat閃退

免安裝的tomcat雙擊startup.bat後,啟動窗口一閃而過,而且tomcat服務未啟動。

原因

在啟動tomcat是,需要讀取環境變量和配置信息,缺少瞭這些信息,就不能登記環境變量,導致瞭tomcat的閃退。

解決辦法:

1.在已解壓的tomcat的bin文件夾下找到startup.bat,右擊->編輯。在文件頭加入下面兩行:

SET JAVA_HOME=D:\Java\jdk1.6.0_10 (java jdk目錄)
SET TOMCAT_HOME=E:\tomcat-6.0.35 (解壓後的tomcat文件目錄)

2.同樣的。在已解壓的tomcat的bin文件夾下找到shutdown.bat,右擊->編輯。在文件頭加入下面兩行:

SET JAVA_HOME=D:\Java\jdk1.6.0_10 (java jdk目錄)
SET TOMCAT_HOME=E:\tomcat-6.0.35 (解壓後的tomcat文件目錄)

3.將你要發佈/部署的web文件復制到tomcat的webapps目錄下。

4.雙擊startup.bat即可啟動tomcat,成功啟動。

5.雙擊shutdown.bat即可停止tomcat。或者在已啟動的tomcat窗口中直接ctrl+c也可停止tomcat。

問題,
1. 免安裝的tomcat雙擊startup.bat後,啟動窗口一閃而過,而且tomcat服務未啟動。
2. 這裡有時候修瞭原本的web目錄,也會閃退

原因是:在啟動tomcat是,需要讀取環境變量和配置信息,缺少瞭這些信息,就不能登記環境變量,導致瞭tomcat的閃退。

解決辦法一:
1. 去配置電腦的系統環境變量
        (1) 新增系統變量 TOMCAT_HOME=D:\2Software\​​​​​​tomcat-8.5.31\apache-tomcat-8.5.31
        (2)  在path 目錄中添加         %OMCAT_HOME%\bin

        註意: 當然這裡你的Java環境是已經配好的

解決辦法二:

1.在已解壓的tomcat的bin文件夾下找到startup.bat,右擊->編輯。在文件頭加入下面兩行:

set JAVA_HOME=D:\2Software\Java\jdk-11
set TOMCAT_HOME=D:\2Software\​​​​​​tomcat-8.5.31\apache-tomcat-8.5.31

2.同樣的。在tomcat的bin文件夾下找到shutdown.bat,右擊->編輯。在文件頭加入下面兩行:

set JAVA_HOME=D:\2Software\Java\jdk-11
set TOMCAT_HOME=D:\2Software\tomcat-8.5.31\apache-tomcat-8.5.31

3.將你要發佈/部署的web文件復制到tomcat的webapps目錄下。
4.雙擊startup.bat即可啟動tomcat,成功啟動。

** 有時候如果啟動閃退,隻要運行一下 shutdown.bat 也可以解決下次啟動時的閃退問題

八、修改配置文件setclasspath.bat

有些時候,我們可以通過修改配置文件setclasspath.bat解決tomcat閃退問題

方法:

1、—-》進入Tomcat目錄—-》進入在bin目錄

2、—-》找到setclasspath.bat文件—-》右鍵點擊編輯

3、在該文件開頭中加入 java_home和jar_home 的具體路徑設置

4、再次啟動Tomcat,執行startup.bat

九、等待更新

一種找到導致tomcat閃退的原因的方法:

1、windows+R—-》輸入cmd—-》進入命令提示符窗口

2、輸入路徑—-》進入到tomcat的bin目錄

3、—-》輸入catalina.bat run 回車

4、—-》查看具體錯誤信息

隻要找到錯誤原因,就可以針對性的解決問題。

tomcat出錯,每個人遇到的情況因軟硬件問題都會有不同,這裡隻是總結出幾大類常遇到的情況,希望能給你一點啟發,慢慢來,修改前多做備份,會找到原因解決問題的

到此這篇關於Tomca啟動閃退問題解決(八大類)的文章就介紹到這瞭,更多相關Tomca啟動閃退內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: