其实我的机子之前是可以同时启动两个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=512mset 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环境变量如果设了一定要删掉.