找不到Tomcat 7 setenv.sh

Posted

技术标签:

【中文标题】找不到Tomcat 7 setenv.sh【英文标题】:Tomcat 7 setenv.sh is not found 【发布时间】:2012-03-17 19:44:39 【问题描述】:

我下载并提取了apache-tomcat-7.0。根据 RUNNING.txt (%CATALINA_BASE%/RUNNING.txt) 中的说明,应该在“setenv.sh”文件中设置 JRE_HOME。

这个文件在哪里?文档说,它将在 CATALINA_HOME/bin 目录中。但是该文件不存在。

【问题讨论】:

【参考方案1】:

文档确实提到了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\jre6"
  exit /b 0


On *nix, $CATALINA_BASE/bin/setenv.sh:

  JRE_HOME=/usr/java/latest
  CATALINA_PID="$CATALINA_BASE/tomcat.pid"

http://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt

【讨论】:

【参考方案2】:

自己创建一个;它不是分发的一部分。这并不难。对于您的情况,只需添加

JRE_HOME=/path/to/your/java/installation

到文件并使其可执行 (chmod 755 setenv.sh)。

如有必要,您还可以添加其他选项(例如-Xmx)。

【讨论】:

不应该是export JRE_HOME=...吗? Ghm,我对CATALINA_OPTS 使用了类似的命令,它无需导出即可工作。 OP 可以以任何方式确认这一点。【参考方案3】:

如果在tomcat的bin文件夹中没有找到“setenv.sh”或“setenv.bat”,请按照如下设置:

    在tomcat的bin文件夹中新建文件。 linux 用户将其重命名为setenv.shwindows 用户将其重命名为setenv.bat 现在您可以在此文件中设置多个内容:

设置 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_OPTS 虽然 JAVA_OPTS 也被内部 Tomcat 命令使用:停止进程、版本命令等。【参考方案4】:

用户 Mindas 的回答是完全正确的:需要在 CATALINA_HOMECATALINA_BASE 目录中创建 setenv.sh 文件,正如 catalina.sh 文件中的注释所示。

然而,在CATALINA_HOME环境变量未设置的情况下,Tomcat必须猜测CATALINA_HOME/bin/目录的位置,这是一个“鸡与蛋”的问题。

我在 Ubuntu 服务器上遇到过这种情况,幸运的是 Tomcat 正确猜测了 CATALINA_HOME/bin/ 目录。对于不需要为不同用户定制 Tomcat 的单用户环境,似乎在catalina.sh 脚本中设置JAVA_HOMEJRE_HOME 环境变量将是解决“鸡和蛋”问题的方法.

【讨论】:

以上是关于找不到Tomcat 7 setenv.sh的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat 8.5.15 找不到 jcifs.jar

TOMCAT启动,找不到建立的JSP网页

手动启动tomcat错误: 找不到或无法加载主类

eclipse 保存后就找不到类

服务里找不到相应的程序怎么办?jira和tomcat都无法正常启动?

idea启动tomcat报错,找不到catalina.bat文件