6

我已经通过 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。

谢谢

4

3 回答 3

8

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

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

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

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

于 2015-12-18T10:21:54.360 回答
2

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

例如:

*JAVA_OPTS="-Djava.awt.headless=true -Xmx2G -XX:+UseConcMarkSweepGC -server -XX:MaxPermSize=384m"*
于 2014-07-13T14:50:22.663 回答
1

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-07-14T10:11:44.963 回答