1. 程式人生 > >Windows伺服器下,Tomcat製作成服務自啟動,跑不起來,報記憶體溢位。

Windows伺服器下,Tomcat製作成服務自啟動,跑不起來,報記憶體溢位。

最近由於客戶這邊伺服器老是要重啟,每次重啟後都需要手動上伺服器開啟Tomcat,挺麻煩的,於是想著把Tomcat製作成服務,然後設定開機自啟動,挺簡單的步驟,但是實行起來坑還是有的,於是記錄一下,如下:

  1. 把Tomcat製作成服務的過程
    1. 找到Tomcat的bin目錄,如下圖:
    2. 按住Shift + 滑鼠右鍵,選擇在此處開啟命令視窗,找到bin目錄下的service.bat檔案,把他拖入到命令視窗中,如下圖:
    3. 回車,會提示你輸入如下命令,我們輸入service.bat install(下載安裝服務,service.bat remove:解除安裝服務),如下圖:
    4. 回車後,會提示如下內容,表示安裝成功:
    5. Win+R,輸入service.msc進入到服務頁面,可以檢視到我們安裝好的tomcat服務:
    6. 備註,服務名稱是可以自己修改的,只需要在 service.bat install 命令後加上服務名稱就行,tomcat會有預設的名稱,可以進入bin目錄下的,service.bat進行檢視:
  2. 使用服務啟動後,tomcat執行時會丟擲各種記憶體溢位錯誤,於是我第一時間想到的是去修改catalina.bat檔案中的記憶體設定,但是然並卵,於是我又嘗試不用服務,去使用startup.bat檔案執行專案是能夠正常跑起來的,是為什麼呢,這個問題搞了我很久,到處尋找終於找出問題,我們還是可以看下service.bat檔案,從下圖看,我們可以大概看懂意思,使用服務執行的時候,我們會執行service.bat檔案,然後service.bat會去執行tomcat.exe檔案,但是我們正常去執行startup.bat的時候,tomcat回去執行catalin.bat檔案,所以由此看來兩種執行方式是不一樣的,於是,得出解決方案:
  3. 開啟service.bat檔案,找到如下兩個引數--JvmMs(最小記憶體)、--JvmMx(最大記憶體) 修改為自己需要的大小,我們可以看到,圖中,這兩個引數的預設值,我們只需要修改預設值,儲存,然後重新安裝服務,這個問題就搞定了。
  4. 如果是在服務已經安裝的情況下,我們不想重新去解除安裝安裝服務的話,可以選擇直接修改系統登錄檔,Win+R,輸入regedit,開啟登錄檔,

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat7\Parameters\Java  目錄下,如下圖:

  5. 完成完以上操作後,重啟服務,就可以了。

以上描述完畢,有什麼問題歡迎溝通。