Tomcat指定JDK, 同时跑多个tomcat

本文介绍了如何在Windows系统中设置特定的JDK路径以运行多个Tomcat实例,避免端口冲突。主要步骤包括修改startup.bat、setclasspath.bat和shutdown.bat文件设置JAVA_HOME和JRE_HOME,以及修改server.xml配置文件来调整端口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

找一个是在linux下的,我修改一下,在window下的。
就是修改 C:\tomcat-5.5.27\bin\startup.bat和setclasspath.bat shutdown.bat
就是在rem Make sure prerequisite environment variables are set后(或文件的开头)加上下面二句

set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_33
set JRE_HOME=C:\Program Files\Java\jre6
其实就是人们常说的windows的环境变量,我们没有从windows去读取,只是自己设置而已。

要跑多个tomcat,就是要端口不冲突。copy一下tomcat,修改一下C:\tomcat-5.5.27\conf\server.xml就行了。如下。

<Server port="8005" shutdown="SHUTDOWN">    ---->    <Server port="8195" shutdown="SHUTDOWN">

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />    ---->    <Connector port="8091" protocol="HTTP/1.1"  maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />    ---->    <Connector port="8199" protocol="AJP/1.3" redirectPort="8443" />
<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">    ---->    <Host name="10.10.3.54"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" ><Context path="" docBase="ROOT" reloadable="true"></Context></Host>

至于原作者对server.xml作的第三个地方的修改,不太明白。我只修改二个地方就行了。(后来发现只修改2个地方不行了,还是要修改第3个地方的。)

参考如下:
http://www.cnblogs.com/lioillioil/archive/2011/10/08/2202169.html

一、应用实例

      一般情况下一台服务器只跑一个业务,那么就直接配置一套环境,设置好Java环境变量即可。某些时候一台服务器上会安装多个业务,而且各个业务需要的JDK版本各不相同,或者为了使业务独立开来,需要指定Tomcat的JDK。

      现假设某个业务的Tomcat(apache-tomcat-6.0.32)需要用到该版本JDK(jdk1.6.0_18),JDK安装目录为 "/usr/local/java/jdk1.6.0_18"。

 

二、安装Tomcat

      1、通过Apache官网下载获得Tomcat(apache-tomcat-6.0.32.tar.gz),将文件上传至指定目录,解压Tomcat安装。我上传至Linux服务器的 "/home/appuser/yuexin/" 目录下,取名为 "tomcat-yuexin" 。命令如下:

# tar zxvf apache-tomcat-6.0.32.tar.gz

# mv apache-tomcat-6.0.32 tomcat-yuexin

 

      2、修改Tomcat三个配置文件,"tomcat/bin/catalina.sh" 、 "tomcat/bin/setclasspath.sh" 、 "tomcat/conf/server.xml" 。

           1) 在catalina.sh文件和setclasspath.sh文件开头的空白处加上如下两句(指定JDK):

export JAVA_HOME=/usr/local/java/jdk1.6.0_18
export JRE_HOME=/usr/local/java/jdk1.6.0_18/jre

           2) 修改server.xml文件如下内容(解决多个Tomcat启动、停止端口冲突问题):

复制代码
<Server port="8005" shutdown="SHUTDOWN">    ---->    <Server port="8195" shutdown="SHUTDOWN">

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />    ---->    <Connector port="8091" protocol="HTTP/1.1"  maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />    ---->    <Connector port="8199" protocol="AJP/1.3" redirectPort="8443" />

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">    ---->    <Host name="10.10.3.54"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" ><Context path="" docBase="ROOT" reloadable="true"></Context></Host>
复制代码


三、启动,停止Tomcat验证安装

      1、启动Tomcat,并查看进程。如下:

复制代码
# cd bin/
# ./startup.sh

# ps -ef|grep tomcat
root     25178     1  0 09:46 ?        00:00:30 /usr/local/java/jdk1.6.0_18/jre/bin/java -Djava.util.logging.config.file=/home/appuser/yuexin/tomcat-yuexin/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/home/appuser/yuexin/tomcat-yuexin/endorsed -classpath /home/appuser/yuexin/tomcat-yuexin/bin/bootstrap.jar -Dcatalina.base=/home/appuser/yuexin/tomcat-yuexin -Dcatalina.home=/home/appuser/yuexin/tomcat-yuexin -Djava.io.tmpdir=/home/appuser/yuexin/tomcat-yuexin/temp org.apache.catalina.startup.Bootstrap start
root     26513 26303  0 14:48 pts/0    00:00:00 grep tomcat

# ./shutdown.sh
复制代码


      从进程信息可以看出Tomcat使用的JDK环境为 "/usr/local/java/jdk1.6.0_18" ,并且能正常启动和停止,启动后访问该服务器相应端口能看到Apach Tomcat的欢迎界面,停止时不影响其他应用进程。至此安装配置完成。

<think>好的,用户想在Tomcat指定使用JDK 21。我需要根据提供的引用资料来给出正确的步骤。首先,我需要回忆一下相关的引用内容。引用中提到了修改启动脚本,比如setclasspath.sh、catalina.sh或者bat文件,以及设置JAVA_HOME和JRE_HOME。 用户之前可能已经安装了JDK 21,但系统默认的JDK可能还是旧版本,比如8或者11。所以关键是要在Tomcat的启动脚本中明确指定JDK 21的路径,而不是依赖系统环境变量。 根据引用[1],用户需要在启动脚本中找到JAVA_HOME这一行,然后填入JDK的安装目录。例如,JAVA_HOME=/usr/local/jdk1.8,但这里需要改成JDK21的路径,比如/usr/local/jdk21。引用[3]提到在setclasspath.sh的首行添加export JAVA_HOME和JRE_HOME。同样适用于Linux系统。而引用[5]指出在catalina.sh或catalina.bat中修改,这取决于操作系统是Linux还是Windows。 需要注意不同操作系统的脚本文件不同,.sh是Linux,.bat是Windows。用户可能需要确认自己使用的系统类型。另外,确保JDK21的安装路径正确,比如/usr/lib/jvm/jdk-21或者用户自定义的路径。 步骤应该是:1. 找到Tomcat的bin目录下的启动脚本;2. 修改setclasspath或catalina文件,添加JAVA_HOME和JRE_HOME的路径;3. 保存并重启Tomcat同时,用户需要验证JDK版本是否生效,可以通过查看日志或运行版本命令。 可能的问题包括路径错误,文件权限问题,或者脚本修改不正确。需要提醒用户检查这些点,并确保Tomcat有权限访问指定JDK目录。此外,如果用户同时多个JDK,确保其他应用不受影响,如引用[2]中的情况,不影响全局的JDK8。</think>### 如何在Tomcat指定使用JDK 21? #### 操作步骤: 1. **定位Tomcat启动脚本** 进入Tomcat安装目录的`bin`子目录,根据操作系统选择以下文件: - **Linux/macOS**:`catalina.sh` 或 `setclasspath.sh` - **Windows**:`catalina.bat` 或 `setclasspath.bat` 2. **修改脚本以指定JDK 21路径** 在脚本文件的开头添加以下两行代码,将路径替换为JDK 21的实际安装路径: ```bash export JAVA_HOME=/path/to/jdk21 # 例如:/usr/lib/jvm/jdk-21 export JRE_HOME=$JAVA_HOME/jre ``` *Windows系统需使用`set`命令*: ```bat set JAVA_HOME=C:\path\to\jdk21 set JRE_HOME=%JAVA_HOME%\jre ``` 3. **保存并重启Tomcat** 保存修改后,运行`shutdown.sh`(或`shutdown.bat`)关闭Tomcat,再运行`startup.sh`(或`startup.bat`)重新启动。 4. **验证JDK版本** 通过以下命令检查Tomcat是否使用JDK 21启动: ```bash ps -ef | grep tomcat # Linux/macOS查看进程信息 java -version # 直接查看Java版本(需确保环境变量未冲突) ``` #### 注意事项: - **路径正确性**:确保`JAVA_HOME`指向JDK 21的安装根目录(包含`bin`、`lib`等子目录)[^3][^5]。 - **脚本权限**(Linux/macOS):使用`chmod +x *.sh`赋予执行权限。 - **环境变量冲突**:若系统已设置全局`JAVA_HOME`,需确保Tomcat脚本中的定义覆盖全局变量[^2]。 #### 示例配置(Linux): ```bash # 在setclasspath.sh或catalina.sh开头添加 export JAVA_HOME=/opt/jdk/jdk-21.0.2 export JRE_HOME=$JAVA_HOME/jre ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值