zoukankan      html  css  js  c++  java
  • 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。(推荐使用,简单粗暴)

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

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

    :配置java路径
    set JAVA_HOME=D:oracle-java-1.7-x86jdk1.7.0_79
    set JRE_HOME=D:oracle-java-1.7-x86jdk1.7.0_79jre
    

      保存,重启tomcat。

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

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

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

    set JAVA_HOME=..oracle-java-1.7-x86jdk1.7.0_79
    set JRE_HOME=..oracle-java-1.7-x86jdk1.7.0_79jre
    

      路径正确,引用成功。

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

      找不到JRE。 

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

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

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

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

      方案二:修改setclasspath.bat文件

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

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

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

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

    :原来的
    :set _RUNJAVA="%JRE_HOME%injava.exe"
    :修改后
    set _RUNJAVA="D:oracle-java-1.7-x86jdk1.7.0_79injava.exe"
    

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

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

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

    :修改前
    set _RUNJDB="%JAVA_HOME%injdb.exe"
    :修改后
    set _RUNJDB="D:oracle-java-1.7-x86jdk1.7.0_79injdb.exe"  

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

      java.exe:JVM

      jdb.exe: JAVA调试器

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

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

    写在最后

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

     相关推荐:

  • 相关阅读:
    需要union
    with语法,需要递归的面试题目
    聚合主分类,子查询获得子分类
    泛型
    RepeaterInMVC
    需要自己创建集合的题目
    Ollydbg入门
    svn服务器架设
    http与svn架设服务器
    svn错误信息一览表
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/11726735.html
Copyright © 2011-2022 走看看