1. 程式人生 > >啟動Tomcat一閃而過 除錯

啟動Tomcat一閃而過 除錯

啟動tomcat時cmd視窗一閃而過解決方法。

問題現象:

在實際開發中一般都是eclipse+tomcat(也許還會用到tomcat的外掛),我們只需要在eclipse中單擊servers上的按鈕就可以成功啟動tomcat了,

但是如果想在tomcat的安裝目錄下 雙擊startup.bat啟動時卻一閃而過了。這是為什麼呢(tomcat啟動失敗),馬上就帶大家看看具體的原因。

下面我先跟大家確認一下問題出現的前提條件(本機版本java:1.6.20,tomcat:6.0.32):

1)在eclipse裡面啟動tomcat時都是正常的。

2)在系統中配置了各種環境變數如下:

JAVA_HOME:H:\DevelopTools\Java\jdk1.6.0_20

CATALINA_BASE:H:\DevelopTools\apache-tomcat-6.0.32

CATALINA_HOME:H:\DevelopTools\apache-tomcat-6.0.32

CLASSPATH:.;%JAVA_HOME%;%JAVA_HOME%\jre\lib;

PATH:.;%JAVA_HOME%\bin;%CATALINA_HOME%\bin;

來分析一下:

進入tomcat的安裝目錄(即解壓後放置的地方):

看到圈出紅色的3個bat檔案,一般通過startup.bat啟動tomcat時流程是:startup->catalina->setclasspath->catalina

如果這3個bat檔案裡面有一個出現錯誤的話就是啟動失敗。為了找到一閃而過的原因得需要我們來看看這3個檔案裡面到底是什麼了


先記事本開啟startup.bat,找到最後一句話::end,我們知道end表示結束的意思,:end是一個標記,我們在後面加上一句pause



(暫停等待的意思)再次執行startup.bat,就會看到上圖,當我們按任意的鍵時cmd視窗又是一閃而過了。但是這已經確定了我們的環境變數都是正確的。

為了更加詳細的看到資訊,我們再來更改一句:找到call "%EXECUTABLE%" start %CMD_LINE_ARGS% 把裡面的start替換為run。



再來看看cmd窗口裡面輸出錯誤資訊了:

error occurred during initialization of vm

could not reserve enough space for objectheap

could not create the java virtual machine

我們大體可以理解為:因為程式請求不到足夠的記憶體就啟動不了vm,導致程式退出。

那麼我們可以來解決這個問題了:申請足夠的記憶體就可以了

如下操作:在catalina.bat中 找到Execute The Requested Command下面的

set JAVA_OPTS把這一句替換為:

set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m-Xmx800m -XX:MaxNewSize=256m

再次啟動startup.bat會看到

已經啟動成功了(記得把之前修改的內容run、pause還原回去)。

到這裡,貌似問題已經解決了,如果遇到其他的問題該怎麼解決呢(因為其他的問題也會導致cmd視窗一閃而過)?