在Tomcat中添加JVM选项

46

如何在Apache Tomcat 6中添加jvm(Java虚拟机)选项?

Tomcat中是否有管理控制台?我尝试使用http://localhost:8080/admin,但无法获取任何内容。

我想添加以下jvm选项:

-agentpath:C:\calltracer\jvmti\calltracer5.dll=traceFile-C:\calltracer\call.trace,filterFile-C:\calltracer\filters.txt,outputType-xml,usage-uncontrolled -Djava.library.path=C:\calltracer\jvmti -Dcalltracerlib=calltracer5
6个回答

41

正如Bhavik Shah所说,您可以在JAVA_OPTS中完成此操作,但根据catalina.sh的建议方式是使用CATALINA_OPTS:

#   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
#                   "run" or "debug" command is executed.
#                   Include here and not in JAVA_OPTS all options, that should
#                   only be used by Tomcat itself, not by the stop process,
#                   the version command etc.
#                   Examples are heap size, GC logging, JMX ports etc.

#   JAVA_OPTS       (Optional) Java runtime options used when any command
#                   is executed.
#                   Include here and not in CATALINA_OPTS all options, that
#                   should be used by Tomcat and also by the stop process,
#                   the version command etc.
#                   Most options should go into CATALINA_OPTS.

26

将其设置在[path to tomcat]/bin/catalina.sh的JAVA_OPTS变量中。在Windows下,有一个控制台可以设置它,或者您可以使用catalina.bat。

JAVA_OPTS=-agentpath:C:\calltracer\jvmti\calltracer5.dll=traceFile-C:\calltracer\call.trace,filterFile-C:\calltracer\filters.txt,outputType-xml,usage-uncontrolled -Djava.library.path=C:\calltracer\jvmti -Dcalltracerlib=calltracer5

15
在Tomcat 7中,这不是推荐的自定义位置。从“catalina.sh”文件中可以看到:“不要在此脚本中设置变量。相反,将它们放入CATALINA_BASE/bin目录下的setenv.sh脚本中,以保持自定义内容分离”。另外,正如Mitch所指出的那样,CATALINA_OPTS是更经典的存储变量的选项。 - Andy MacKinlay
4
扩展一下setenv.sh,这里是一个示例条目: export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m" (这将增加最大永久代大小)。 - whla

24

检查catalina.sh文件(对于Windows,请使用下面提到的所有内容的.bat版本)

#   Do not set the variables in this script. Instead put them into a script
#   setenv.sh in CATALINA_BASE/bin to keep your customizations separate.

还有这个

#   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
#                   "run" or "debug" command is executed.
#                   Include here and not in JAVA_OPTS all options, that should
#                   only be used by Tomcat itself, not by the stop process,
#                   the version command etc.
#                   Examples are heap size, GC logging, JMX ports etc

在CATALINA_BASE/bin目录下创建一个setenv.sh文件(与catalina.sh位于同一目录)。编辑该文件,并将参数设置为CATALINA_OPTS。

例如,如果您想更改堆大小,文件应如下所示:

CATALINA_OPTS=-Xmx512m

如果你正在使用Windows,那么setenv.bat就是你需要的。

set CATALINA_OPTS=-agentpath:C:\calltracer\jvmti\calltracer5.dll=traceFile-C:\calltracer\call.trace,filterFile-C:\calltracer\filters.txt,outputType-xml,usage-uncontrolled -Djava.library.path=C:\calltracer\jvmti -Dcalltracerlib=calltracer5

要后来清除添加的选项,只需删除setenv.bat/sh文件。


21

要实现此功能,您需要运行Tomcat发行版中“bin”目录下的“tomcat6w”应用程序。例如,对于Windows,默认路径为“C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\tomcat6w.exe”。 “tomcat6w”应用程序会启动一个GUI界面。如果选择“Java”选项卡,您可以输入所有Java选项。

还可以通过命令行传递JVM选项给Tomcat。为此,您需要使用以下命令:

<tomcatexecutable> //US//<tomcatservicename> ++JvmOptions="<JVMoptions>"

"tomcatexecutable"指的是您的Tomcat应用程序,"tomcatservicename"是您正在使用的Tomcat服务名称,而"JVMoptions"则是您的JVM选项。例如:

"tomcat6.exe" //US//tomcat6 ++JvmOptions="-XX:MaxPermSize=128m" 

这意味着Tomcat必须始终作为服务启动才能使更改生效,因此第一种方法应该更好。 - frewper
`<# -Options:"-DRESOURCE_LOCATION=C:\data\" This one is working for Windows Service. #> Function AppendTomcatJavaOptions1([string]$TomcatBin, [string]$Options) { # In this case we're taking advantage of the fact that we named the service the same as the /bin/tomcat.exe # but if your service name is different, you may need to modify this. $cmd = """$TomcatBin\$($TomcatServiceName).exe"" //US//$TomcatServiceName ++JvmOptions=$Options" Write-Host "Appending Java Options via Service option: $cmd" cmd.exe /C "$cmd" }` - m1m1k

3

这对我来说很合适。谢谢! - Roberto Rodriguez

1
如果您从startup.bat启动tomcat,则需要添加一个系统变量:JAVA_OPTS作为名称和您想要的参数(在您的情况下:

-agentpath:C:\calltracer\jvmti\calltracer5.dll=traceFile-C:\calltracer\call.trace,filterFile-C:\calltracer\filters.txt,outputType-xml,usage-uncontrolled -Djava.library.path=C:\calltracer\jvmti -Dcalltracerlib=calltracer5


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