1、背景描述

有时候,我们会在 catalina.bat 或 catalina.sh 文件中,自定义一些环境变量,例如额外指定 JDK 路径或设置 JVM 参数。

实际上,直接在 catalina.bat 或 catalina.sh 文件中,自定义环境变量的做法,是不规范的。

因为在对 Tomcat 进行(小版本)升级时,新版本的 catalina.bat 或 catalina.sh 文件,会覆盖旧版本的文件,从而导致原来的自定义环境变量失效。

对此,Tomcat 官方已在 catalina.bat(或 catalina.sh )文件的注释中(见下图),提示使用 setenv.bat(或 setenv.sh )配置文件(需额外创建)来保存自定义环境变量。

2、指定JDK路径

2.1、Windows系统

2.1.1、指定JDK路径之前

如上图所示,在配置 Tomcat 的自定义环境变量之前,Tomcat 默认使用(Windows)系统环境变量所配置的 JDK 路径。

2.1.2、指定JDK路径命令

如上图所示,先在 Tomcat 的 bin 目录下,创建一个 setenv.txt 文件,编辑好指定JDK路径的命令之后,再将 txt 后缀更改为 bat 即可。

set JAVA_HOME=自定义JDK路径

2.1.3、指定JDK路径之后

如上图所示,通过 setenv.bat 文件,成功使用了指定的 JDK 路径。

2.2、Linux系统

注意:在Linux系统中,Tomcat 使用的是 JRE 路径,因此需要指定的是 JRE_HOME 而不是 JAVA_HOME 。

2.2.1、指定JRE路径之前

如上图所示,在配置 Tomcat 的自定义环境变量之前,Tomcat 默认使用(Linux)系统环境变量所配置的 JDK 路径。

2.2.2、指定JRE路径命令

如上图所示,先在 Tomcat 的 bin 目录下,创建一个 setenv.sh 文件,编辑好指定JRE路径的命令之后,再将该脚本文件添加执行权限(chmod +x setenv.sh)即可。

JRE_HOME="自定义jre路径"

2.2.3、指定JRE路径之后

如上图所示,通过 setenv.sh 文件,成功使用了指定的 JRE 路径。

3、设置JVM参数

3.1、Windows系统

3.1.1、设置JVM参数命令

-Xms:设置 JVM 初始化时内存;

-Xmx:设置 JVM 最大可用内存;

这两个值一般设置相同的大小,以避免每次垃圾回收完成后 JVM 重新分配内存。

set JAVA_OPTS=-Xms自定义大小 -Xmx自定义大小

3.1.2、设置JVM参数之后

如上图所示,通过 setenv.bat 文件,成功使用了设置的 JVM 参数。

3.2、Linux系统

3.2.1、设置JVM参数命令

-Xms:设置 JVM 初始化时内存;

-Xmx:设置 JVM 最大可用内存;

这两个值一般设置相同的大小,以避免每次垃圾回收完成后 JVM 重新分配内存。

JAVA_OPTS="-Xms自定义大小 -Xmx自定义大小"

3.2.2、设置JVM参数之后

如上图所示,通过 setenv.sh 文件,成功使用了设置的 JVM 参数。

本文参考

【1】【zno2】【setenv.bat】【博客园】【2016-10-17】

【2】【song854601134】【 tomcat中管理环境变量之setenv.sh】【CSDN】【2024-05-31】

【3】【且行且思】【Tomcat通过setenv.bat指定jdk和jre(相对路径)】【博客园】【2023-06-28】

【4】【yuer!】【如何修改linux下tomcat指定的jdk路径】【博客园】【2020-04-02】

使用 setenv 配置文件管理 Tomcat 的自定义环境变量的更多相关文章

  1. tomcat安装及环境变量配置

    java环境的配置应该都学过吧,这里简单的讲一下. 下载安装java JDK,注意安装的路径,我们需要进行环境变量的配置. 2 安装完成以后,配置环境变量 环境变量的配置这里就以win7为例:右击计算 ...

  2. 一劳永逸部署项目:通过tomcat加载环境变量

    一劳永逸部署项目:通过tomcat加载环境变量 转载自:https://blog.csdn.net/u010414666/article/details/46499953 一.说明 项目中经常会用到x ...

  3. windows下配置cygwin和dig的环境变量

    配置cygwin和dig的环境变量 打开"控制面板"("开始">"设置">"控制面板"),然后双击" ...

  4. XCode 设置自定义环境变量

    XCode 设置自定义环境变量 Product -> Scheme -> Edit Scheme -> 之后设置环境变量.

  5. 自学Linux Shell6.2-用户自定义环境变量

    点击返回 自学Linux命令行与Shell脚本之路 6.2-用户自定义环境变量 1.设置局部用户定义变量 一旦启动bash shell(或者执行一个shell脚本),你就能创建这个shell进程可见的 ...

  6. Win10 配置Tomcat与Java环境变量

    一:下载JKD与Tomcat包 JDK        密码:d9ym Tomcat   密码:z9pa 二:安装JAVA-JDK与配置环境变量 ①:记住安装的地址 ②:配置JAVA-JDK的环境变量, ...

  7. Tomcat安装与环境变量的配置

    Tomacat的下载  去Tomcat官网下载,我使用的是apache-tomcat-7.0.78的版本. 安装  下载完成之后,我们解压缩到相应的目录.这里我解压缩到d盘下面 1.然后去配置系统的环 ...

  8. Java入门之Tomcat安装及环境变量配置

    一.Tomcat下载 地址:http://tomcat.apache.org/download-80.cgi#8.0.39 本人用的是Tomcat/8.0.37免安装版,解压到一个目录,本人用的是:D ...

  9. Tomcat学习笔记【2】--- Tomcat安装、环境变量配置、启动和关闭

    本文主要讲Tomcat的安装和配置. 一 Tomcat安装 1.1 下载 下载地址:http://tomcat.apache.org/ 1.2 安装 Tomcat是不需要安装的,解压压缩包即可. 在安 ...

  10. Xcode 8:在 Active Compilation Conditions 中自定义环境变量

    来源:没故事的卓同学 链接:http://www.jianshu.com/p/96b36360bb2d 在Xcode 7我们在 OTHER_SWIFT_FLAGS中配置环境变量.但是有一个不爽的地方就 ...

随机推荐

  1. FileZilia FATAL ERROR: Network error: Software caused connection abort

    使用FileZilia sftp传文件,对象服务器突然关闭,导致FileZilia传输中断. 等待对象服务器打开后,使用FileZilia想继续传输文件,结果一直显示: FATAL ERROR: Ne ...

  2. VulnHub-Narak靶机渗透流程

    VulnHub-Narak Description Narak is the Hindu equivalent of Hell. You are in the pit with the Lord of ...

  3. C# 线程与进程

    一.前台线程与后台线程对象 为什么要用多线程? 1.让计算机"同时"做多件事情,节约时间. 2.多线程可以让一个程序"同时"处理多个事情. 3.后台运行程序,提 ...

  4. Dubbo依赖

    项目依赖 Dubbo依赖 <!--Dubbo依赖--> <dependency> <groupId>com.alibaba</groupId> < ...

  5. 魔百和s905l3a蓝牙系列 在armbian驱动并使用蓝牙!

    文章已废弃,因为现在x大的dtb不需要驱动直接可以使用 之后我会重新写文章,感谢大家

  6. tensorflow学习率指数衰减ExponentialDecay的参数介绍与使用方法

      本文介绍在tensorflow库中,用于动态调整神经网络的学习率的一种方法--指数衰减ExponentialDecay()策略的参数含义及其具体用法.   在进行神经网络训练时,我们经常需要用到动 ...

  7. Prometheus 基于Python Django实现Prometheus Exporter

    基于Python Django实现Prometheus Exporter 需求描述 运行监控需求,需要采集Nginx 每个URL请求的相关信息,涉及两个指标:一分钟内平均响应时间,调用次数,并且为每个 ...

  8. LOTO示波器功率分析功能

    LOTO示波器软件在非标功能中增加了功率分析功能,对当前屏幕的电压波形和电流波形进行了瞬时功率,视在功率以及有功功率/平均功率的分析计算. 有功功率是指电器所消耗的电能,用于产生热能.机械能或光能等, ...

  9. 【干货】流量录制回放工具:jvm-sandbox-repeater

    在软件开发和测试过程中,我们经常会遇到需要对网络请求进行录制和回放的需求,以便进行调试.测试和分析.为了模拟真实的用户请求,我们通常会使用各种流量录制回放工具来记录并重放网络请求. 其中,jvm-sa ...

  10. SEO初学者指南之什么是SEO

    前言 Hi,大家好,我是听风.欢迎来到SEO基础入门指南.在这个博客中主要教大家SEO的基础知识,以谷歌SEO为主,重点放在实操方面. 虽然是基础入门教程,但我希望朋友们不要对"初学者&qu ...