2

我第一次使用tomcat。我已经下载并解压了tomcat 7.0.28。我可以通过 ./startup.sh 和 ./shutdown.sh 从命令提示符启动和关闭它。到目前为止,它工作正常。我也可以在浏览器中看到 tomcat 主页和示例。

但我想要的是使用 java profiler 来分析 tomcat 服务器。为此,我想从 jar 文件中运行它。类似 java -jar tomcat_allrequiredclasses.jar 的东西。有什么办法可以像这样启动tomcat服务器吗?我试图运行位于 bin 目录中的 tomcat 的 jar 文件,但给了我 classNotdefined 异常(只是为了尝试我这样做)。

谢谢..

4

1 回答 1

1

Tomcat 需要在 JVM 启动时设置很多系统属性和类似的东西,因此脚本是必需的,除非您要使用“嵌入式 Tomcat”并使用Tomcat 的嵌入式驱动程序编写自己的启动驱动程序。

我认为这对于仅附加分析器来说太过分了。大多数分析器都带有一个 JVM “代理”,您可以使用-agentpath命令行选项将其配置为在 JVM 启动时附加。这就是我附加 YourKit Java Profiler 的方式,例如:

CATALINA_OPTS="-agentpath:/path/to/yourkit/libyjpagent.so=${yourkit.options}"
$CATALINA_HOME/bin/startup.sh

这将以通常的方式启动 Tomcat,但包含 JVM 分析器代理,以便您随后可以附加到它。

更新以包含 OP 的示例

你想这样做:

$ export CATALINA_OPTS="-javaagent:lib/jborat-agent.jar -Xss256m -Xms256m  \ -Dch.usi.dag.jborat.exclusionList="conf/exclusion.lst" \ -Dch.usi.dag.jp2.dumpers="ch.usi.dag.jp2.dump.xml.XmlDumper" \ -Xbootclasspath/p:./lib/Thread_JP2.jar:lib/jborat-runtime.jar:lib/jp2-runtime.ja‌​r"
$ $CATALINA_HOME/bin/startup.sh

我鼓励您尽可能使用完整路径(例如,不要使用lib/jborat-agent.jar-- 添加完整路径)。

请注意,通过使用-Xss256M,您将线程堆栈大小设置为 256M 而不是堆大小。我怀疑你打算用来-Xmx256M设置堆的最大大小。

于 2012-07-22T13:24:14.680 回答