日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

startup.bat啟動Tomcat閃退問題原因及解決_Tomcat

作者:克薩斯的松鼠 ? 更新時間: 2022-06-12 編程語言

出現問題:

安裝了Tomcat之后,開始用著還好好的。莫名其妙的就很突然出現了一些玄學問題,某一次開始我雙擊了startup.bat啟動Tomcat時我的黑窗口就很不給面子的運行著運行著就閃退了,隱約間能看到個異常,可剛看清楚一個caused by...黑窗口就已經關閉了。經歷了重啟電腦等常規解決問題的思路后依舊無法解決。

分析問題

既然問題出現在這個啟動后閃退,那就去看一眼啟動時都做了什么?用記事本打開startup.bat,會發現一行腳本是這樣寫的:

set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"

看得出它訪問了本目錄下的catalina.bat腳本,那就記事本打開catalina.bat,此時又發現里面出現了這些內容:

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后又發現它又訪問了catalina.bat

綜上發現startup.bat啟動流程為:startup->catalina->setclasspath->catalina

在這里插入圖片描述

閃退原因:

可見這三個文件一個都不能出問題。分析這三個文件得出閃退問題主要原因

原因一:java環境變量出問題了

從啟動腳本中看得出Tomcat多次訪問了環境變量信息,其中也包括java環境(畢竟Tomcat原碼也是java啊)。故要先去檢查jdk的環境配置
注意:CATALINA_HOME是Tomcat的環境,你可以選擇不配置,不過這樣的話你就只能在bin目錄下啟動Tomcat了,換句話來講,配置完Tomcat環境后你可以把startup.bat復制到其他地方雙擊啟動。

原因二:端口占用

如果Tomcat已經被啟動或者8080端口被占用,這自然是不允許的。

你可以直接訪問localhost:8080看能否訪問Tomcat,如果可以那就說明是已經開啟過了的,你可以雙擊shutdown.bat進行關閉。

或者你可以在黑窗口中執行netstat -ano | findstr "8080"查看8080端口狀態,如果是TIME_WAIT則說明未被占用。

原因三:你的Tomcat不干凈了

到現在還沒解決,那就有可能是你所下載的Tomcat是一些綠色版、無敵版、xx版等閹貨或畸形貨。此時就可在記事本打開startup.bat,在腳本最后面一行加上pause,保存后啟動進行斷點調試了。(不一定非得像我圖片中加在倒數第二行,最后一行應該也可以,只要不放在前面的邏輯中就行)。

在這里插入圖片描述

此時啟動效果和之前沒有區別,只是出了問題后不再會立刻閃退,而是你在窗口中按任意鍵后才會退出。OK!現在你就研究屬于你的bug吧(記得解決完問題后把pause刪掉)!

原文鏈接:https://blog.csdn.net/D_ps19990501/article/details/121289269

欄目分類
最近更新