今天在作项目的时候,主管让我在本机上启动多个tomcat且指定不一样的jdk环境。由于在企业的项目中个,对于同一个服务器中有多个jdk和tomcat,因此就须要手动指定不一样的jdk。html
在网上找了不少资料,也没解决。linux
其中看过一个csdn博客: 在tomcat下指定JDK路径 ,刚开始就直接用了,可是没有解决问题。最后仔细看来看了看TOMCAT_HOME/bin/startup.bat脚本文件,发现其解决方案是不合理的。web
最终找到了以下的博客:tomcat之一:指定tomcat运行时JDK版本 解决了问题。windows
下面说明如何修改tomcat运行时JDK版本tomcat
windows服务器
一、解压下载的tomcat;post
二、找到bin下的setclasspath.bat文件;在文件的开始出添加以下代码:测试
set JAVA_HOME=D:\Program Files\Java\jdk7\jdk1.7.0_51 set JRE_HOME=D:\Program Files\Java\jdk7\jre7
上面的意思是设定JAVA_HOME和JRE_HOME的路径;url
经过这里咱们能够看出能够不设置JDK的环境变量;spa
linux
在bin下找到setclasspath.sh,在文件的最开始加入以下代码:
set JAVA_HOME=/home/jdk/Java\jdk7\jdk1.7.0_51 set JRE_HOME=/home/jdk/Java\jdk7\jre7
修改了setclasspath文件以后,tomcat在启动时便使用设定的JDK。
可是为何这样设置以后就能够呢?
咱们都知道启动tomcat能够经过运行bin下的startup.bat,startup.bat会调用catalina.bat文件,而catalina.bat会调用setclasspath.bat文件来获取JAVA_HOME和JRE_HOME这两个环境变量的值,所以若要在tomcat启动时指向特定的JDK,则需在setclasspath.bat文件的开头处加上JAVA_HOME和JRE_HOME。
基于上面的运行方式,还有第二种修改方式,以下:
一、修改tomcat/bin/catalina.bat,增长 set JAVA_HOME=D:\Program Files\Java\jdk7\jdk1.7.0_51
二、修改tomcat/bin/setclasspath.bat,一样增长
set JAVA_HOME=D:\Program Files\Java\jdk7\jdk1.7.0_51
set JRE_HOME=D:\Program Files\Java\jdk7\jre7
这两种方式使用任何一种均可以实现修改tomcat的依赖JDK环境,同时能够不配置JDK的环境变量。
有不正之处欢迎指正,谢谢!