startup.bat啟動Tomcat閃退問題原因及解決
出現(xiàn)問題:
安裝了Tomcat之后,開始用著還好好的。莫名其妙
的就很突然出現(xiàn)了一些玄學問題,某一次開始我雙擊了startup.bat
啟動Tomcat時我的黑窗口就很不給面子的運行著運行著就閃退
了,隱約間能看到個異常,可剛看清楚一個caused by...
黑窗口就已經(jīng)關閉了。經(jīng)歷了重啟電腦等常規(guī)解決問題的思路后依舊無法解決。
分析問題
既然問題出現(xiàn)在這個啟動后閃退,那就去看一眼啟動時都做了什么?用記事本打開startup.bat
,會發(fā)現(xiàn)一行腳本是這樣寫的:
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
看得出它訪問了本目錄下的catalina.bat
腳本,那就記事本打開catalina.bat
,此時又發(fā)現(xiàn)里面出現(xiàn)了這些內(nèi)容:
rem Get standard Java environment variables
if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
echo Cannot find "%CATALINA_HOME%\bin\setclasspath.bat"
echo This file is needed to run this program
goto end
:okSetclasspath
call "%CATALINA_HOME%\bin\setclasspath.bat" %1
if errorlevel 1 goto end
這說明catalina.bat
又訪問了該目錄下的setclasspath.bat
,而記事本打開setclasspath.bat
后又發(fā)現(xiàn)它又訪問了catalina.bat
。
綜上發(fā)現(xiàn)startup.bat啟動流程
為:startup->catalina->setclasspath->catalina
閃退原因:
可見這三個文件一個都不能出問題。分析這三個文件得出閃退問題主要原因
原因一:java環(huán)境變量出問題了
從啟動腳本中看得出Tomcat多次訪問了環(huán)境變量信息,其中也包括java環(huán)境(畢竟Tomcat原碼也是java?。9室热?code>檢查jdk的環(huán)境配置。
注意:CATALINA_HOME
是Tomcat的環(huán)境,你可以選擇不配置,不過這樣的話你就只能在bin目錄下啟動Tomcat了,換句話來講,配置完Tomcat環(huán)境后你可以把startup.bat
復制到其他地方雙擊啟動。
原因二:端口占用
如果Tomcat已經(jīng)被啟動或者8080端口被占用,這自然是不允許的。
你可以直接訪問localhost:8080
看能否訪問Tomcat,如果可以那就說明是已經(jīng)開啟過了的,你可以雙擊shutdown.bat
進行關閉。
或者你可以在黑窗口中執(zhí)行netstat -ano | findstr "8080"
查看8080端口狀態(tài),如果是TIME_WAIT
則說明未被占用。
原因三:你的Tomcat不干凈了
到現(xiàn)在還沒解決,那就有可能是你所下載的Tomcat是一些綠色版、無敵版、xx版
等閹貨或畸形貨。此時就可在記事本打開startup.bat
,在腳本最后面一行加上pause
,保存后啟動進行斷點調(diào)試了。(不一定非得像我圖片中加在倒數(shù)第二行,最后一行應該也可以,只要不放在前面的邏輯中就行)。
此時啟動效果和之前沒有區(qū)別,只是出了問題后不再會立刻閃退,而是你在窗口中按任意鍵后才會退出。OK!現(xiàn)在你就研究屬于你的bug吧(記得解決完問題后把pause刪掉)!
到此這篇關于startup.bat啟動Tomcat閃退問題原因及解決的文章就介紹到這了,更多相關startup.bat啟動Tomcat閃退內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!
版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。