其實我的機子之前是可以同時啟動兩個tomcat的,但是是兩個不同版本的tomcat,一個是6.0,一個是7.0,我的環境變量都沒有設置,所以我對解壓過的tomcat唯一改動的就是在catalina.bat中加入了這兩句話
set JAVA_HOME=D:\jdk\jdk1.6(你的jdk路徑,不要到bin目錄,安裝目錄就行了)
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m(設置內存)
然后將7.0的conf目錄下的server.xml的幾個端口號都改一下,默認的8080,8009,8005全部換成其他的任意端口號,沒被占用的都行,比如9080,9009,9005...
這樣我就可以同時啟動兩個tomcat了,一個6.0,一個7.0,然后今天想要同時啟動兩個6.0,發現復制一一份6.0到其他目錄,然后端口號也改了,但是同時啟動兩個6.0是不行的,第二個啟動會報錯(在logs目錄下的文件中能看到)什么Address already in use: JVM_Bind...之類的,網上查了一下,說啟動兩個相同版本的tomcat時,CATALINA_HOME不能設,或者要設兩個不同的,然后改另一個tomcat的startup.bat,把CATALINA_HOME換成CATALINA_HOME2,但是我沒有設置CATALINA_HOME啊,而且好麻煩,所以我想我直接設置在tomcat設置CATALINA_HOME行不行呢,然后我在startup.bat的第一行加了三句話:
set JAVA_HOME=D:\jdk\jdk1.6(你的jdk路徑,不要到bin目錄,安裝目錄就行了)
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m
set CATALINA_HOME=D:\apachetomcat\apache-tomcat-6.0.37(你的tomcat路徑,注意哪個tomcat就寫哪個tomcat的解壓目錄)
兩個tomcat都同時這樣設置,注意要在startup.bat中首行添加,在catalina.bat中添加好像是不行的,catalina.bat中的可以去掉了.
綜上,
在有一個tomcat版本的前提下,復制一份,然后分別給每個tomcat的startup.bat首行添加一下三句話:
set JAVA_HOME=D:\jdk\jdk1.6(你的jdk路徑,不要到bin目錄,安裝目錄就行了)
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m(可以不寫)
set CATALINA_HOME=D:\apachetomcat\apache-tomcat-6.0.37(你的tomcat路徑,注意哪個tomcat就寫哪個tomcat的解壓目錄)
最后改一下第二個tomcat的server.xml的端口號
然后就可以同時啟動兩個相同版本的tomcat了,要啟動多個應該差不多的道理...
注意,catalina.base環境變量一定不要設,設置了tomcat的工作目錄那改第二個tomcat的配置文件就不起作用了,不管運行多少個tomcat還是會使用你catalina.base所指向的tomcat目錄下的配置文件,這樣啟動第二個肯定會沖突,CATALINA_HOME環境變量如果設置了,刪不刪都可以,沒有影響,因為在startup.bat中開始已經動態設置了.但catalina.base環境變量如果設了一定要刪掉.