Tomcat读取环境变量值异常,CATALINA_BASE作用存疑
CATALINA_BASE环境变量的作用
操作过程
最初配置环境变量:

启动服务后日志显示:
05-Apr-2023 15:05:38.441 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation 05-Apr-2023 15:05:38.441 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\apache-tomcat-9.0.73 05-Apr-2023 15:05:38.442 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\apache-tomcat-9.0.73 05-Apr-2023 15:05:38.442 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\apache-tomcat-9.0.73 05-Apr-2023 15:05:38.442 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\apache-tomcat-9.0.73
随后修改Tomcat服务配置:
修改前:
修改后:
再次启动服务后日志显示:
05-Apr-2023 15:41:02.426 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Projects\java_app\instance 05-Apr-2023 15:41:02.427 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\apache-tomcat-9.0.73 05-Apr-2023 15:41:02.427 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\apache-tomcat-9.0.73 05-Apr-2023 15:41:02.427 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Projects\java_app\instance
CATALINA_BASE的核心作用
CATALINA_BASE是Tomcat专门存放实例化配置、运行时数据的目录,和CATALINA_HOME(Tomcat核心程序安装目录)相互独立,主要作用有两点:
- 支持多实例共享核心程序:可以用同一个CATALINA_HOME(同一个Tomcat安装包)启动多个独立的Tomcat实例,每个实例用自己的CATALINA_BASE存放专属的配置文件(如server.xml、web.xml)、部署的应用、日志文件、临时文件等,避免实例间的配置和运行数据互相干扰。
- 隔离程序与自定义数据:CATALINA_HOME只保留Tomcat的原始安装文件,不做任何自定义修改;所有个性化配置、业务应用、运行产生的日志都放在CATALINA_BASE中,后续升级Tomcat时,直接替换CATALINA_HOME目录即可,无需迁移配置和业务数据,大幅简化升级流程。
从你的操作结果也能直观看到:修改CATALINA_BASE后,Tomcat的运行实例目录从默认的CATALINA_HOME路径,切换到了你指定的C:\Projects\java_app\instance,但核心程序依然使用C:\apache-tomcat-9.0.73下的文件。
内容的提问来源于stack exchange,提问作者IDK
相关产品推荐
相关产品推荐

