【问题标题】:JAVA_OPTS set in catalina.sh not working for TOMCAT private instancecatalina.sh 中设置的 JAVA_OPTS 不适用于 TOMCAT 私有实例
【发布时间】:2014-07-13 14:42:45
【问题描述】:

我已经通过 JAVA_OPTS 在 catalina 基础的 catalina.sh 中放置了 JVM 选项。但是,系统没有选择这些选项——我正在尝试传递分析信息来设置项目属性和日志文件的路径。我必须在私有实例的 bin 中设置 setenv.sh 中的选项。即使是我放入 catalina.sh 以查看 JAVA_OPTS 的 echo 命令也没有像 CATALINA_BASE 等打印默认值。一定要打印。 catalina.sh 是否正在处理?

归根结底,我的系统与 setenv.sh 一起工作正常。我很好奇为什么没有从 catalina.sh 获取 JAVA_OPTS。

我正在使用安装了 TOMCAT 7 和 JDK 1.7 的 Ubuntu 12.04。

谢谢

【问题讨论】:

    标签: java tomcat ubuntu catalina java-opts


    【解决方案1】:

    您不应该编辑 catalina.sh 文件 - 它在该文件中声明。相反,要设置您的 environmental 变量,请在 catalina.sh 所在的同一目录中创建一个 setenv.sh 文件(称为 CATALINA_BASE/bin ) 并在其中编写您的代码。

    我必须自己设置JAVA_OPTS 变量,我创建了bin/setenv.sh 文件,将其设置为可执行chmod +x bin/setenv.sh 并在其中写道:

    JAVA_OPTS="$JAVA_OPTS -Xms128m -Xmx512m -server"

    将我的初始分配内存设置为 128,最大内存设置为 512 MB。它正在工作。

    【讨论】:

    【解决方案2】:

    请编辑:/etc/default/tomcat7/etc/default/{user_who_runs_tomcat}

    例如:

    *JAVA_OPTS="-Djava.awt.headless=true -Xmx2G -XX:+UseConcMarkSweepGC -server -XX:MaxPermSize=384m"*
    

    【讨论】:

    • 你能再解释一下吗?至于为什么 catalina.sh 设置不起作用?
    【解决方案3】:

    catalina.sh 有很多条件 - 我不止一次发生过我编辑了错误的位置,或者稍后在该文件中被覆盖的位置。 setenv.sh 工作正常,这正是它的用途:假设您正在安装一个 tomcat 更新 - 这将覆盖您的 catalina.sh。但是,tomcat 从来没有附带setenv.sh,因此它不会覆盖您的更改。

    此外,您可能想要定义CATALINA_OPTS 而不是JAVA_OPTS:这些是用于启动tomcat 的选项。如果您的配置的一部分是JAVA_OPTS="-Xmx16G -Xms16G",那么当您尝试关闭tomcat 时,您将分配16G 堆空间:关闭进程也会生成一个带有JAVA_OPTS 参数的JVM。只有启动过程在CATALINA_OPTS 环境中产生(除了JAVA_OPTS),因此这很可能是您想要配置/调整的,否则您可能会因为shutdown.sh 的荒谬内存要求而无法停止tomcat .

    【讨论】:

      猜你喜欢
      • 2014-05-14
      • 1970-01-01
      • 2013-01-21
      • 2021-08-20
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      相关资源
      最近更新 更多