Tomca啟動(dòng)閃退問題解決(八大類)
Tomcat 啟動(dòng)時(shí)出現(xiàn)黑屏一閃而過的現(xiàn)象原因有很多,但通常都涉及幾個(gè)方法:
一、Java環(huán)境不對(duì),Tomcat 不同版本需要的Java環(huán)境不同。
有時(shí)tomcat版本能夠正常安裝,但啟動(dòng)時(shí)檢測(cè)到j(luò)ava 版本不對(duì)就會(huì)出現(xiàn)啟動(dòng)黑屏一閃而過的現(xiàn)象。例如:tomcat 10.1-M14版本能夠在java version “1.8.0_131”下用命令提示符安裝成功,運(yùn)行時(shí)卻出現(xiàn)啟動(dòng)黑屏一閃而過的現(xiàn)象,查了很久都沒有發(fā)現(xiàn)原因,最近官方出了安裝提示才明白問題出在運(yùn)行需要Java 11 或更高版本環(huán)境。
檢查Java版本是否適合安裝,按windows + R 啟用cmd命令,打開命令提示符,輸入“java -version”,回車,出現(xiàn)jdk版本,
如果不適合,請(qǐng)先安裝相應(yīng)的Java版本。
當(dāng)前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
二、環(huán)境變量沒有配置好
Tomcat需要配置好JRE才能正常運(yùn)行。一般情況下,啟動(dòng)閃屏崩潰是因?yàn)檎也坏絁RE路徑,也就是說環(huán)境變量在安裝JDK的時(shí)候沒有配置好。
檢查jdk是否安裝,按windows + R 啟用cmd命令,打開命令提示符,進(jìn)入命令提示符,輸入“java -version”,回車,出現(xiàn)jdk版本,表示安裝成功,檢查版本是否合適,參考上文Java環(huán)境和tomcat版本對(duì)應(yīng)關(guān)系。
檢測(cè)jdk配置有沒出錯(cuò),可以在tomcat安裝目錄\bin下,startup.bat文件最后加上pause命令
啟動(dòng)運(yùn)行tomcat,黑屏?xí)枰慈我怄I才結(jié)束如圖:
如能如圖正常顯示Using路徑,說明環(huán)境變量設(shè)置沒有問題,可跳過此步驟。
如發(fā)現(xiàn)問題,可檢查相關(guān)環(huán)境變量配置
① 配置環(huán)境變量,本機(jī)電腦—>屬性—>高級(jí)—>點(diǎn)擊環(huán)境變量
②在系統(tǒng)變量里點(diǎn)擊新建—>添加變量:
③ 輸入變量名,變量值:
變量名:CATALINA_HOME
變量值:c:\00\ tomcat10_021
(變量值為tomcat安裝路徑,就是你剛剛解壓安裝tomcat的那個(gè)文件夾路徑)
④ 在系統(tǒng)變量里找到Path,雙擊打開:
新建環(huán)境變量,輸入:%CATALINA_HOME%\bin
或在原來path列表中添加%CATALINA_HOME%\lib;%CATALINA_HOME%\bin
⑤打開cmd,選擇以管理員的身份運(yùn)行:(Windows鍵+R,輸入cmd,回車)
⑥進(jìn)入tomcat安裝位置\bin目錄,輸入:startup,回車
⑦打開瀏覽器,輸入:http://localhost:8080/
(出現(xiàn)以下頁面,證明安裝配置成功。)
三、Tomcat端口被占用
Tomcat默認(rèn)需要使用8080等幾個(gè)端口,如果端口被占用,tomcat啟動(dòng)時(shí)就會(huì)崩潰,此時(shí)需要查找是哪個(gè)進(jìn)程占用了8080端口。
其實(shí)還可以通過查看Tomcat終端輸出日志,找到Tomcat目錄下的logs目錄中catalina當(dāng)天的日志,例如:catalina.2022-05-19.log文件,如果在日志出錯(cuò)信息中看到:Address already in use: bind說明是端口占用了。
在cmd中查看8080有沒有被占用,找出占用8080端口的進(jìn)程
按windows + R 啟用cmd命令,打開命令提示符,
輸入:netstat -ano | findstr “8080”
如果端口沒有被占用,就會(huì)顯示空值;
如果你修改過tomca t端口設(shè)置,請(qǐng)查找你的tomcat使用端口,例如,曾把tomcat端口修改成9080,此時(shí)查詢9080端口使用情況的命令為:
輸入:netstat -ano | findstr “9080”
顯示為9080端口被PID值為15316的進(jìn)程所占用。
2 接下來可以在任務(wù)管理器里查看該P(yáng)ID值進(jìn)程號(hào)所對(duì)應(yīng)的進(jìn)程:
任務(wù)管理器菜單欄中的點(diǎn)擊【選項(xiàng)】——勾選” 【前端顯示】。
任務(wù)管理器菜單欄中的點(diǎn)擊-【查看】-【選擇列】中勾選“PID”
發(fā)現(xiàn)占用9080端口,PID值為15316的進(jìn)程為java.exe
3、判斷該進(jìn)程是否有用,如果沒有用,接著直接右鍵結(jié)束該進(jìn)程即可。
或者,直接在命令提示框界面輸入要結(jié)束的PID值進(jìn)程,例如:
要終止PID號(hào)為1196的進(jìn)程,
可輸入:Taskkill/PID 1196
如果該進(jìn)程確實(shí)有用不能結(jié)束,那么可考慮更換tomcat使用的端口
打開:Tomcat的安裝目錄\ conf \ server.xml
找到下面這行代碼:
??? <Connector port="8080" protocol="HTTP/1.1" ?????????????? connectionTimeout="20000" ?????????????? redirectPort="8443" />
將8080端口改為你所需要的端口地址,例如,現(xiàn)在改為9080;
??? <Connector port="9080" protocol="HTTP/1.1" ?????????????? connectionTimeout="20000" ?????????????? redirectPort="8443" />
4、在Tomcat目錄\bin中找到“startup.bat”啟動(dòng)Tomcat
5、然后打開瀏覽器,輸入:http://localhost:9080,就可以發(fā)現(xiàn)Tomcat正常啟動(dòng)了。
除8080端口外Tomcat還會(huì)占用8005,8009和8443端口。如果這4個(gè)端口已被占用,可以修改為使用其它端口。詳細(xì)見:Tomcat端口配置(詳細(xì))
四、配置文件編碼問題
Tomcat啟動(dòng)時(shí)會(huì)調(diào)用幾個(gè)相關(guān)配置文件,如果里面出現(xiàn)了不是UTF-8的字符,或者文件保存時(shí)的編碼格式不是UTF-8,tomcat編譯時(shí)就會(huì)出錯(cuò)。就算是注釋行內(nèi)也要仔細(xì)檢查。
出錯(cuò)現(xiàn)象:
Tomcat出現(xiàn)啟動(dòng)時(shí)黑屏一閃而過的現(xiàn)象,查詢catalina log日志,發(fā)現(xiàn)有以下出錯(cuò)信息:
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)
30-May-2022 23:57:18.015 嚴(yán)重 [main] org.apache.catalina.startup.Catalina.start 無法啟動(dòng)服務(wù)器,服務(wù)器實(shí)例未配置
30-May-2022 23:57:44.468 警告 [main] org.apache.catalina.startup.Catalina.parseServerXml 無法從[此處路徑省略\conf\server.xml]加載服務(wù)器配置
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字節(jié)的 UTF-8 序列的字節(jié) 1 無效。
分析:
查看相關(guān)的conf\server.xml文件,發(fā)現(xiàn)是因?yàn)樽⑨屃艘恍┐a,在代碼行里加入了中文說明,所以會(huì)出現(xiàn)無效UTF-8 序列字節(jié)
解決方法:
刪掉中文,改成英語或拼音注釋。將文件保存支持UTF-8的格式。
重啟tomcat后故障解決。
五、啟動(dòng)時(shí)需要的配置文件編寫出錯(cuò)
所有相關(guān)的配置文件都要仔細(xì)檢測(cè),語法格式等出錯(cuò)都會(huì)出現(xiàn)tomcat啟動(dòng)后閃退的現(xiàn)象。例如是否按規(guī)范設(shè)置JAVA_HOME變量名,路徑設(shè)置時(shí) \ 或 / 是否正確,注意路徑設(shè)置時(shí)后面不用多加“\” 或者 “;”........
有沒有和防火墻或其他app沖突。
如果tomcat內(nèi)存配置有誤也會(huì)導(dǎo)致tomcat閃退(在Catalina文件里,內(nèi)存配置有錯(cuò)誤),解決辦法:找到配置內(nèi)存的語句,刪除錯(cuò)誤,重新配置。
六、部分相關(guān)文件丟失
因意外或其他原因,tomcat 或jdk的一些jar文件被打包成pack格式,造成tomcat 啟動(dòng)缺jar包,報(bào)錯(cuò)NoClassDefFound。
解決:修復(fù)jdk,補(bǔ)回jar
七、免安裝的tomcat閃退
免安裝的tomcat雙擊startup.bat后,啟動(dòng)窗口一閃而過,而且tomcat服務(wù)未啟動(dòng)。
原因:
在啟動(dòng)tomcat是,需要讀取環(huán)境變量和配置信息,缺少了這些信息,就不能登記環(huán)境變量,導(dǎo)致了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.將你要發(fā)布/部署的web文件復(fù)制到tomcat的webapps目錄下。
4.雙擊startup.bat即可啟動(dòng)tomcat,成功啟動(dòng)。
5.雙擊shutdown.bat即可停止tomcat?;蛘咴谝褑?dòng)的tomcat窗口中直接ctrl+c也可停止tomcat。
問題,
1. 免安裝的tomcat雙擊startup.bat后,啟動(dòng)窗口一閃而過,而且tomcat服務(wù)未啟動(dòng)。
2. 這里有時(shí)候修了原本的web目錄,也會(huì)閃退
原因是:在啟動(dòng)tomcat是,需要讀取環(huán)境變量和配置信息,缺少了這些信息,就不能登記環(huán)境變量,導(dǎo)致了tomcat的閃退。
解決辦法一:
1. 去配置電腦的系統(tǒng)環(huán)境變量
(1) 新增系統(tǒng)變量 TOMCAT_HOME=D:\2Software\??????tomcat-8.5.31\apache-tomcat-8.5.31
(2) 在path 目錄中添加 %OMCAT_HOME%\bin
注意: 當(dāng)然這里你的Java環(huán)境是已經(jīng)配好的
解決辦法二:
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.將你要發(fā)布/部署的web文件復(fù)制到tomcat的webapps目錄下。
4.雙擊startup.bat即可啟動(dòng)tomcat,成功啟動(dòng)。
** 有時(shí)候如果啟動(dòng)閃退,只要運(yùn)行一下 shutdown.bat 也可以解決下次啟動(dòng)時(shí)的閃退問題
八、修改配置文件setclasspath.bat
有些時(shí)候,我們可以通過修改配置文件setclasspath.bat解決tomcat閃退問題
方法:
1、----》進(jìn)入Tomcat目錄----》進(jìn)入在bin目錄
2、----》找到setclasspath.bat文件----》右鍵點(diǎn)擊編輯
3、在該文件開頭中加入 java_home和jar_home 的具體路徑設(shè)置
4、再次啟動(dòng)Tomcat,執(zhí)行startup.bat
九、等待更新
一種找到導(dǎo)致tomcat閃退的原因的方法:
1、windows+R----》輸入cmd----》進(jìn)入命令提示符窗口
2、輸入路徑----》進(jìn)入到tomcat的bin目錄
3、----》輸入catalina.bat run 回車
4、----》查看具體錯(cuò)誤信息
只要找到錯(cuò)誤原因,就可以針對(duì)性的解決問題。
tomcat出錯(cuò),每個(gè)人遇到的情況因軟硬件問題都會(huì)有不同,這里只是總結(jié)出幾大類常遇到的情況,希望能給你一點(diǎn)啟發(fā),慢慢來,修改前多做備份,會(huì)找到原因解決問題的。
到此這篇關(guān)于Tomca啟動(dòng)閃退問題解決(八大類)的文章就介紹到這了,更多相關(guān)Tomca啟動(dòng)閃退內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
阿里云Centos7下安裝Redis及tomcat設(shè)置自啟動(dòng)的方法
這篇文章主要介紹了阿里云Centos7下安裝Redis及tomcat設(shè)置自啟動(dòng)的方法,本文實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-03-03Tomcat報(bào)錯(cuò): JDBC unregister 解決辦法
這篇文章主要介紹了Tomcat報(bào)錯(cuò): JDBC unregister 解決辦法的相關(guān)資料,需要的朋友可以參考下2017-05-05解析Tomcat的啟動(dòng)腳本--catalina.bat
本文主要對(duì)Tomcat的三個(gè)最重要的啟動(dòng)腳本之一--catalina.bat腳本做了詳細(xì)分析,具有很好的參考價(jià)值,需要的朋友可以看下2016-12-12tomcat 幾種連接池配置代碼(包括tomcat5.0,tomcat5.5x,tomcat6.0)
Tomcat6.0連接池配置 實(shí)現(xiàn)代碼,大家可以參考下。2009-08-08解決啟動(dòng)tomcat報(bào)錯(cuò)發(fā)生服務(wù)特定錯(cuò)誤1的問題
這篇文章主要介紹了解決啟動(dòng)tomcat報(bào)錯(cuò)發(fā)生服務(wù)特定錯(cuò)誤1的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12詳解Tomcat Web 應(yīng)用綁定域名的幾種方式
本篇文章主要介紹了詳解Tomcat Web 應(yīng)用綁定域名的幾種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12Tomcat簡(jiǎn)單網(wǎng)站部署的三種方式小結(jié)
本文主要介紹了Tomcat簡(jiǎn)單網(wǎng)站部署的三種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05