啓動tomcat時 一閃而過解決方法

【前文】html

在實際開發中通常都是eclipse+tomcat(也許還會用到tomcat的插件),咱們只須要在eclipse中單擊servers上的按鈕就能夠成功啓動tomcat了,java

可是若是想在tomcat的安裝目錄下 雙擊startup.bat啓動時卻一閃而過了。這是爲何呢(tomcat啓動失敗),立刻就帶你們看看具體的緣由。apache

工具/原料

 
  • Tomcattomcat

  • 記事本服務器

方法/步驟

 
  1.  

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

    1)在eclipse裏面啓動tomcat時都是正常的。工具

    2)在系統中配置了各類環境變量以下:性能

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

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

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

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

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

     


     

  2.  

    咱們來具體來分析一下問題出現的緣由及解決辦法:

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

    看到圈出紅色的3個bat文件,通常經過startup.bat啓動tomcat時流程是:startup->catalina->setclasspath->catalina

    若是這3個bat文件裏面有一個出現錯誤的話就是啓動失敗。爲了找到一閃而過的緣由得須要咱們來看看這3個文件裏面究竟是什麼了

     


     

  3.  

    先記事本打開startup.bat,找到最後一句話::end,咱們知道end表示結束的意思,:end是一個標記,咱們在後面加上一句pause (暫停等待的意思);

    再次執行startup.bat,就會看到如圖,當咱們按任意的鍵時cmd窗口又是一閃而過了。可是這已經肯定了咱們的環境變量都是正確的。

     

     

     
     
  4.  

    爲了更加詳細的看到信息,咱們再來更改一句:找到call "%EXECUTABLE%" start %CMD_LINE_ARGS% 把裏面的start替換爲run。

    再來看看cmd窗口裏面輸出錯誤信息了:

    error occurred during initialization of vm

    could not reserve enough space for object heap

    could not create the java virtual machine

    咱們大致能夠理解爲:由於程序初始化時請求不到足夠的內存,致使vm程序退出。

     


     

     

  5.  

    那麼既然找到了問題的緣由,咱們能夠來解決這個問題了:申請足夠的內存就能夠了 

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

    set JAVA_OPTS把這一句替換爲:

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

    關於set JAVA_OPTS這句話其實有不少種替換的方式,可是大致上都是同樣的

    再次啓動startup.bat 會看到 咱們期待已久的畫面啦。

    啓動成功啦!

     

     

     

     
     
    【後文】
  1. 經過前面的3篇對Tomcat中startup.bat、catalina.bat、setclasspath.bat文件的解讀,

    你們應該對它們有了大致的瞭解啦,遇到具體的問題咱們就能夠對症下藥了。

  2.  

    我總結一下tomcat常常遇到的幾個問題:

    1)The JAVA_HOME environment variable is not defined This environment variable is needed to run this program

    分析緣由:沒有在tomcat的配置文件中設置環境變量JAVA_HOME

    解決方法:

      JAVA_HOME=H:\DevelopTools\Java\jdk1.6.0_20(具體值要以實際的jdk安裝路徑爲準)

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

    或者明確的定義JAVA_HOME環境變量

     在setclasspath.bat中開始位置加入如下倆句話:

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

     set JRE_HOME=H:\DevelopTools\Java\jdk1.6.0_20(具體值要以實際的jdk安裝路徑爲準)

  3.  

    2) The JAVA_HOME environment variable is not defined correctly  This environment variable is needed to run this program NB: JAVA_HOME should point to a JDK not a JRE

    分析緣由:環境變量JAVA_HOME的設置中應該指定jdk的路徑,不是jre的路徑

    解決方法:

      JAVA_HOME=H:\DevelopTools\Java\jdk1.6.0_20(這裏是JDK的安裝後路徑)

  4.  

    3)error occurred during initialization of vm could not reserve enough space for object heap could not create the java virtual machine

    分析緣由:由於程序初始化時請求不到足夠的內存,致使vm程序退出

    解決方法:

    設置tomcat的應用內存,在catalina.bat中 找到Execute The Requested Command下面的set JAVA_OPTS把這一句替換爲 set JAVA_OPTS=  -Xms800m -Xmx800m

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

    說明: - Xms爲tomcat啓動初始內存 - Xmx爲tomcat最大佔用內存,以上兩個參數關係到tomcat承受的訪問性能,但也要根據服務器實際內存狀況設定。

    其餘問題再也不羅列了,之後遇到後能夠本身動手解決了。

     

    原出處:https://jingyan.baidu.com/article/546ae18563bacd1149f28cca.html來自百度經驗

相關文章
相關標籤/搜索