在安装Tomcat的过程中,多个论坛都需要设置CATALINA_HOME变量并指向Tomcat父目录。我通过eclipse运行web项目,它运行在场,并且没有设置这个环境变量。CATALINA_HOME路径设置
我想知道这个变量的确切目的是什么,何时设置它成为强制性的。
我也想知道驻留在Tomcat/bin目录中的确切使用Tomcat的juli.jar的
在安装Tomcat的过程中,多个论坛都需要设置CATALINA_HOME变量并指向Tomcat父目录。我通过eclipse运行web项目,它运行在场,并且没有设置这个环境变量。CATALINA_HOME路径设置
我想知道这个变量的确切目的是什么,何时设置它成为强制性的。
我也想知道驻留在Tomcat/bin目录中的确切使用Tomcat的juli.jar的
Q>什么确切的目的,这是否变量解决
A中Bootstrap
类>Javadoc说:
此应用程序构建一个类加载器用于加载 卡塔利娜内部类(通过累加所有JAR文件中“的catalina.home”下的“服务器”目录中找到 ),并启动 [R容器的单独执行。此迂回路径的目的是将Catalina内部类(以及它们依赖的任何其他 类,如XML解析器)保留在系统类 路径之外,因此对于应用程序级别类不可见。
但还有更多。 CATALINA_HOME
和(可互换)CATALINA_BASE
定义了一个“基本目录”,它用于引用work
目录(用于保存已编译的jsps),还有助于查找上下文配置文件等。
可能是Eclipse在您不知情的情况下设置了这些属性。打印所有system properties,看看在不在。
Q>时不会将其设置成为强制性
A>从据我记得
Q>确切使用Tomcat的juli.jar
A的>直接从Tomcat documentation:
Apache Tomcat自己实现了几个关键元素 java.util.logging API。这个实现被称为“JULI”。关键 组件有一个自定义的LogManager实现,它知道在Tomcat上运行的不同Web应用程序(以及它们的不同的 类加载器)的 。它支持私有的每个应用程序日志记录 配置。当Tomcat从内存中卸载Web应用程序 时,它也会通知Tomcat,因此可以清除对其类的引用,从而防止内存泄漏。
一旦您安装了Tomcat,请检查java选项下的下列变量的tomcat属性是否已被默认设置。
-Dcatalina.home=C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0
-Dcatalina.base=C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0
-Djava.endorsed.dirs=C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0\endorsed
-Djava.io.tmpdir=C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Program Files (x86)\Apache SoftwareFoundation\Tomcat
6.0\conf\logging.properties
即使在Eclipse内运行,您也不需要自己设置CATALINA_HOME。 您必须设置的唯一时间CATALINA_HOME和/或CATALINA_BASE是如果您想覆盖默认值。最常见的情况是,如果您使用相同的Tomcat二进制文件运行多个Tomcat实例,则可以这样做。
Tomcat的juli.jar
这Tomcat的juli.jar是用于记录目的的第三方组件。它包含完整的Apache Commons Logging实现,因此能够发现log4j的缺点并进行自我配置。
你如何使用Tomcat的juli.jar
如果你想Tomcat的配置为使用log4j的全球: