Linux 两个tomcat指定两个不同jdk版本启动,不用全局环境变量

版权声明:尊重原创,码字不易,转载需博主同意。 https://blog.csdn.net/qq_34626097/article/details/83385219

1.为什么要写这样的一篇博客?

  1. 本人是一名实习生,在公司要上线一个项目的时候,发现一个很奇葩的问题,就是一个服务器上要有两个不同版本tomcat和两个不同版本JDK,既是,运行的主程序用的是tomcat 6.0和JDK1.5,报表服务用的是tomcat 9.0 和 JDK1.8,所以在一个服务器要有两个tomcat和两个JDK问题就此出现。
  2. 两个tomcat会发生端口冲突的问题,这里不详解,一般是次要的服务修改tomcat里的conf文件里的server.xml,所有默认端口,全部+1,如:8080改为8081;
  3. 解决问题一般为一个tomcat使用JDK的全局变量,一个修改配置文件,为指定JDK

2.配置tomcat使用指定JDK不用全局环境变量 ,主要是修改setclasspath.sh和catalina.sh

  1. 进入tomcat的bin文件里,使用vim catalina.sh
  2. 最好是export里面全部都有变量,很多博客里都只是写JAVA_HOME和JRE_HOME两个,记得改成自己JDK地址。
export JAVA_HOME=/opt/jdk1.8/jdk1.8.0_191
export JRE_HOME=/opt/jdk1.8/jdk1.8.0_191/jre
export CATALINA_HOME=/opt/tomcat-9.0
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

catalina.sh
3. 使用vim setclasspath.sh
4. 加入下面两行配置,并修改如图红色框的东西。

export JAVA_HOME=/opt/jdk1.8/jdk1.8.0_191
export JRE_HOME=/opt/jdk1.8/jdk1.8.0_191/jre


5. 如图两个tomcat对应不同版本jdk同时启动成功,注意:修改登录读取一次的配置文件,需要重启,不断读取的,则不需重启。
启动成功

3.思考,关闭防火墙是不是就是解决这种问题最好的方法?

  1. 经过一个晚上的思考,其实关闭或者禁用防火墙都不是一个好方法来的,因为防火墙始终在生成环境或测试环境中,始终都是要开启的。
  2. 既然8080可以穿透防火墙,那肯定可以设置另一个端口来穿透防火墙
  3. 后续会补充防火墙,开启端口的方法
  4. 补充开启端口的方法,点击,前往:linux开启端口方法

猜你喜欢

转载自blog.csdn.net/qq_34626097/article/details/83385219