tomcat 指定(自定义)JDK路径的两种方式

1.情景展示

  tomcat7使用jdk1.7;tomcat8使用jdk1.8。两个tomcat在一台机器下同时启动,你会发现这两个tomcat使用的是一个版本的jdk,

  那就是你配置过的JAVA_HOME。

  查看你的Windows下当前Java版本

  查看我的tomcat7引入的java版本

  第一步:知道tomcat7的根目录下的startup.bat文件

  {TOMCAT_HOME}/startup.bat,在最后一行添加:pause;,进行保存

  这样,启动tomcat时,运行startup.bat文件的DOS命令就不会自动关闭。

  这样,我们就可以看到tomcat所使用的几个主要的变量。 

  CATALINA_BASE: 

  CATALINA_HOME:

  CATALINA_TMPDIR: 临时文件存放位置

  JRE_HOME: JVM所在根路径(运行java文件)

  CLASSPATH: 

  我们可以看到,tomcat7的java配置是jdk1.8,说明它也是从JAVA_HOME里拿到的。

2.解决方案

  想要解决这个问题,可以这样:

  tomcat8不用做修改,默认从环境变量JAVA_HOME中取;修改tomcat7中对于JAVA_HOME的引用。

  修改tomcat7的jdk使用路径。

  方案一:修改startup.bat。(推荐使用,简单粗暴)

  WINDOWS环境

  文件位置:${TOMCAT_HOME}/bin/startup.bat

  在正式代码开始前,添加JAVA_HOME和JRE_HOME的配置。

:配置java路径
set JAVA_HOME=D:\oracle-java-1.7-x86\jdk1.7.0_79
set JRE_HOME=D:\oracle-java-1.7-x86\jdk1.7.0_79\jre

  保存,重启tomcat。

  JRE的配置修改成功,将startup.bat中的pause;去掉即可。

  教你一招:这里也可以使用相对路径哦。

  比如:我的tomcat和jdk都放在D盘根目录下

set JAVA_HOME=..\..\oracle-java-1.7-x86\jdk1.7.0_79
set JRE_HOME=..\..\oracle-java-1.7-x86\jdk1.7.0_79\jre

  路径正确,引用成功。

   路径错误,引用失败,报错如下:

  找不到JRE。 

  说明:通常我们在新服务器上部署项目时,往往需要自己提供tomcat和jdk,为了方便,我们就可以这样做:   

  将jdk放到Tomact目录下,在startup.bat文件中使用相对路径指定JAVA_HOME和JRE_HOME的位置。

set JAVA_HOME=..\oracle-java-1.7-x86\jdk1.7.0_79
set JRE_HOME=..\oracle-java-1.7-x86\jdk1.7.0_79\jre

 

  这样,我们不仅省去了配置java环境变量的麻烦,还省去了为某个tomcat指定jdk的麻烦;

  而且,tomcat想放到哪个磁盘的哪个目录下,位置可以随时进行迁移,而不必再次修改startup.bat文件中tomcat对于jdk的引用。

20201124

  LINUX环境

  修改startup.sh文件

  将jdk压缩包放到tomcat根目录下(文件后缀名为.gz)

  Ctrl+Shift+c,调出命令操作,跳到tomcat根目录下,解压该文件

tar -zxvf 待解压的包名全称(带后缀名)  

  解压完毕,tomcat下会多出jdk的目录

  在bin目录下找到startup.sh文件

  在开头的空白处加上如下两句(指定JDK)

export JAVA_HOME=../jdk1.  8 .0_73
export JRE_HOME=../jdk1.  8 .0_73/jre  

  保存,将项目放到webapps目录下;

  跳到tomcat的bin目录下,使用以下命令启动tomcat并打印日志

./startup.sh && tail -f ../logs/catalina.out

  通过上面的日志,我们可以看到tomcat所依赖的jdk版本已经改过来了;

 

  由上图可知,Linux配置的jdk版本并不受影响。 

  方案二:修改setclasspath.bat文件

  位置:${TOMCAT_HOME}/bin/setclasspath.bat

  第一步:修改java.exe的路径(Java类)

  打开该文件,找到指定jdk的这句话

  这就是为什么tomcat默认从环境变量中寻找jdk的原因。 

:原来的
:  set _RUNJAVA=  "%JRE_HOME%\bin\java.exe"
:修改后
set _RUNJAVA=  "D:\oracle-java-1.7-x86\jdk1.7.0_79\bin\java.exe"

  修改成你的jdk所在路径,保存。

  第二步:修改jdb.exe的路径(Java类调试器) 

  还是该文件,修改,保存,重启tomcat即可。

:修改前
set _RUNJDB=  "%JAVA_HOME%\bin\jdb.exe"
:修改后
set _RUNJDB=  "D:\oracle-java-1.7-x86\jdk1.7.0_79\bin\jdb.exe"   

  可以将原来的代码使用:进行注释掉,这样,后期也容易改回去。 

  java.exe:JVM

  jdb.exe: JAVA调试器

  注意:这里用方式一的pause;无法进行测试,因为我们并没有改JRE_HOME的值。

  所以,测试的话,需要将jdk1.8编译好的项目放入到tomcat7中,倘若报错信息是:java版本不匹配(上面通过tomcat指定的的是jdk1.7),则证明已经修改成功。

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

posted @ 2019-10-23 15:52  Marydon  阅读(10578)  评论(0编辑  收藏  举报