Tomcat 7中的Tomcat/temp目录是什么?

19

Tomcat 7的新下载(我正在使用7.0.19)包含一个名为“temp”的目录,其中包含单个文件“safeToDelete.tmp”。Tomcat是如何使用这个目录的,或者Tomcat用户(开发人员)应该如何使用它?

1个回答

28

当您使用 startup.bat (Windows) 或 startup.sh 启动Tomcat时,它会分别调用catalina.bat/catalina.sh

Catalina需要设置一个临时目录。它通过将CATALINA_TMPDIR变量设置为TOMCAT_HOME\temp文件夹并将其分配给java系统环境变量java.io.tmpdir来实现此操作。

这是从catalina.bat中复制的内容:

rem   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
rem                   the JVM should use (java.io.tmpdir).  Defaults to
rem                   %CATALINA_BASE%\temp.

如果使用startup脚本运行,那么CATALINA_BASE就是TOMCAT_HOME

我们继续:

if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
set "CATALINA_TMPDIR=%CATALINA_BASE%\temp"

最后:

if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end

最终,java.io.tmpdir 指向 CATALINA_TMPDIR,JVM 在其中写入临时文件,包括基于磁盘的存储策略。


6
OP询问tmp文件夹的用途。 - Buhake Sindi
@Reimius,我添加了进一步的注释以作澄清。 - Buhake Sindi
不确定这是否只是Ubuntu的问题,但值得注意的是,许多相关设置都在/etc/default/tomcat7中定义。 - beldaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接