今天在做项目的时候,主管让我在本机上启动多个tomcat且指定不同的jdk环境。因为在企业的项目中个,对于同一个服务器中有多个jdk和tomcat,所以就需要手动指定不同的jdk。

在网上找了很多资料,也没解决。

  其中看过一个csdn博客: 在tomcat下指定JDK路径 ,刚开始就直接用了,但是没有解决问题。最后仔细看来看了看TOMCAT_HOME/bin/startup.bat脚本文件,发现其解决方案是不合理的。

  最终找到了如下的博客:tomcat之一:指定tomcat运行时JDK版本 解决了问题。

      tomcat作为日常开发的web应用服务器,给开发测试带来了很多便利,tomcat的运行依赖JDK的支持,在安装JDK时经常会配置环境变量:JAVA_HOME、CLASSPAT,且需要添加path变量。把应用部署到tomcat下时大多数不需要修改运行环境,但是有时候需要修改JDK的版本,从可以修改tomcat运行时的JDK版本,我们可以知道使用tomcat时不时必须要配置JDK环境变量,因为我们可以通过修改tomcat的文件,指定tomcat运行时的JDK版本。

下面说明如何修改tomcat运行时JDK版本

windows

1、解压下载的tomcat;

2、找到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的路径;

通过这里我们可以看出可以不设置JDK的环境变量;

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。

基于上面的运行方式,还有第二种修改方式,如下:

1、修改tomcat/bin/catalina.bat,增加 set JAVA_HOME=D:\Program Files\Java\jdk7\jdk1.7.0_51

2、修改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的环境变量。

有不正之处欢迎指正,谢谢!

[转]tomcat之一:指定tomcat运行时JDK版本的更多相关文章

  1. tomcat之一:指定tomcat运行时JDK版本

    tomcat作为日常开发的web应用服务器,给开发测试带来了很多便利,tomcat的运行依赖JDK的支持,在安装JDK时经常会配置环境变量:JAVA_HOME.CLASSPAT,且需要添加path变量 ...

  2. 代码编译时JDK版本和运行时JDK版本不一致启动项目报错

    java编译: java编译就是.java文件变成.class文件的过程,这个过程一般在我们常用的编译器中进行,例如Ecliplse和IDEA等:下面以IDEA举例: 执行上述编译使用的JDK版本就是 ...

  3. 如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应

    转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应 如果pytorch的编译时 ...

  4. 【Tomcat】tomcat启动后查看运行时JVM参数

    Tomcat优化配置参考http://www.cnblogs.com/qlqwjy/p/8007490.html 1.启动服务后访问localhost,点击Server Status

  5. 项目部署到tomcat出错(tomcat运行时的JDK版本)

    先展示一下错误,把项目部署到tomcat运行 出错原因 简单来说,就是执行代码的jdk版本 低于 编译的jdk版本 最后面的52.0是一种叫什么魔码,有各自对应的jdk版本. 其中52.0 对应的就是 ...

  6. springmvc学习之jdk版本,tomcat版本,spring版本

    使用的软件是myeclipse2018,jdk8,tomcat9.0,spring3.2.0 以上为我的软件及各种配置 1.建立了web工程,build path 使用的是默认的j2EE1.8(只有配 ...

  7. 直接启动tomcat时为tomcat指定JDK

    第一种: 在windows环境下以批处理文件方式启动tomcat,只要运行<CATALINA_HOME>/bin/startup.bat这个文件,就可以启动Tomcat.在启动时,star ...

  8. 【Tomcat】直接启动tomcat时为tomcat指定JDK 而不是读取环境变量中的配置

    在windows环境下以批处理文件方式启动tomcat,只要运行<CATALINA_HOME>/bin/startup.bat这个文件,就可以启动Tomcat.在启动时,startup.b ...

  9. 解决maven项目update project会更改jdk版本问题

    一.问题描述             在Eclipse中新建了一个Maven工程, 然后更改JDK版本为1.6, 结果每次使用Maven > Update project的时候JDK版本都恢复成 ...

随机推荐

  1. Python学习笔记14—模块

    在python中所有的模块都被加入到了sys.path中,用下面的方法可以看见模块的位置. >>> import sys >>> import pprint > ...

  2. 报错:org.springframework.http.converter.json.MappingJacksonHttpMessageConverter

    org.springframework.http.converter.json.MappingJacksonHttpMessageConverter   1.错误描述 严重: Servlet /hux ...

  3. JZOJ.5307【NOIP2017模拟8.18】偷窃

    Description

  4. Android之內置、外置SDCard

    From:http://blog.csdn.net/u011290399/article/details/10363881 在项目中,发现通过Android提供的API获取外置SDCard的操作一直不 ...

  5. SSM框架---搭建

    SSM框架简介 SSM框架,是spring + spring MVC + MyBatis的缩写,这个是继SSH之后,目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统. Spr ...

  6. Linux系统时间快8个小时

    1.vi /etc/sysconfig/clock   #编辑文件ZONE="Asia/Shanghai"UTC=false                          #设 ...

  7. 170308、oracle查看被锁的表和解锁

    --以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...

  8. 160330、Mybatis整合Spring

    转自csdn文章 http://haohaoxuexi.iteye.com/blog/1843309 Mybatis整合Spring 根据官方的说法,在ibatis3,也就是Mybatis3问世之前, ...

  9. ubuntu squid 代理服务器安装配置

    安装: 下载安装包 http://pan.baidu.com/s/1mitvwpE 解压 tar -xzvf file.tar.gz 编译: 进入sbin目录  执行 ./configure --pr ...

  10. 零基础在Linux服务器上部署javaweb项目

    本教程使用的工具下载链接:http://pan.baidu.com/s/1sl1qz2P 密码:43pj 一.安装JDK 1.首先要查看服务器的系统版本,是32位还是64位 #getconf LONG ...