这个文件在哪里?文档说它应该在CATALINA_HOME/bin目录中。然而,该文件在那里不存在。
文档实际上提到了默认情况下缺少setenv.(sh|bat)
文件:
(3.4) Using the "setenv" script (optional, recommended)
Apart from CATALINA_HOME and CATALINA_BASE, all environment variables can be specified in the "setenv" script. The script is placed either into CATALINA_BASE/bin or into CATALINA_HOME/bin directory and is named setenv.bat (on Windows) or setenv.sh (on *nix). The file has to be readable.
By default the setenv script file is absent. If the script file is present both in CATALINA_BASE and in CATALINA_HOME, the one in CATALINA_BASE is preferred.
For example, to configure the JRE_HOME and CATALINA_PID variables you can create the following script file:
On Windows, %CATALINA_BASE%\bin\setenv.bat:
set "JRE_HOME=%ProgramFiles%\Java\jre@MIN_JAVA_VERSION@" exit /b 0
On *nix, $CATALINA_BASE/bin/setenv.sh:
JRE_HOME=/usr/java/latest CATALINA_PID="/run/tomcat.pid"
https://github.com/apache/tomcat/blob/10.1.9/RUNNING.txt#L151
你只需自己创建一个;它不是发行版的一部分。这并不难。对于你的情况,只需添加:
JRE_HOME=/path/to/your/java/installation
将其写入文件并使其可执行 (chmod 755 setenv.sh
)。
如果需要,还可以添加其他选项(例如 -Xmx
)。
setenv.sh
(适用于Linux用户)或setenv.bat
(适用于Windows用户)。设置JRE_HOME
对于Linux用户
JRE_HOME=/path/to/jre/jre6
对于Windows用户
set JAVA_HOME=C:\Path\to\jre\jdk6
设置JAVA_OPTS
对于Linux用户
JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx512m -DFOOBAR_CONFIGURATION_FILE=file:///C:/foobar.properties"
针对Windows用户
set "JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx512m -DFOOBAR_CONFIGURATION_FILE=file:///D:\foobar.properties"
设置变量后重启Tomcat。 就是这样。
CATALINA_HOME
或者CATALINA_BASE
目录下创建setenv.sh
文件,正如catalina.sh
文件中的注释所示。CATALINA_HOME
环境变量未设置的情况下,Tomcat必须猜测CATALINA_HOME/bin/
目录的位置,这就产生了“先有鸡还是先有蛋”的问题。CATALINA_HOME/bin/
目录的位置。对于单用户环境来说,如果不需要为不同用户定制Tomcat,那么在catalina.sh
脚本中设置JAVA_HOME
或JRE_HOME
环境变量可能是解决“先有鸡还是先有蛋”问题的方案。dos2unix $CATALINA_HOME/bin/*.sh
export JRE_HOME=...
吗? - Oleg MikheevCATALINA_OPTS
,而且不需要使用 export 命令。OP 可以验证一下。 - mindas