我正在使用 VisualVm 在 Web 应用程序中进行一些分析,但“采样器”选项卡中的内存按钮被禁用。
我使用的是 Windows 8、Tomcat 7、VisualVM 1.7.0_09(内部版本 120605)和 JDK 1.6.0_11
我尝试了一些(以当前用户身份运行 tomcat 服务,将 catalina 的温度设置为与 Visualvm 相同)解决方法,但似乎都不起作用,我在某处读到,在 vista 之后这似乎不起作用。
我可以对这种情况进行内存分析吗?
最佳答案
在完全相同的情况下,对我有帮助的是在本地 Tomcat 上使用相同版本的 Java JDK 和 Java JRE。原来我的 Tomcat 使用的是 JDK 1.6.0_45 和 JRE 1.6.0_20。
要检查系统上的 JRE 版本,请打开控制台并写入“java -version”
要检查系统上的 JDK 版本,请打开控制台并写入“javac -version”
创建两个指向您的 JDK 和 JRE 位置的系统变量,例如:
JAVA_HOME 变量,路径为“C:\Program Files\Java\jdk1.6.0_45”
路径为“C:\Program Files\Java\jre6”的 JRE_HOME 变量
编辑“Path”系统变量并将此字符串添加到其值的末尾:“%JAVA_HOME%/bin;%JRE_HOME%/bin”
重新登录您的系统,您的系统变量现在将起作用。
Tomcat 将自动使用这些系统变量,如 catalina.bat 的注释部分所述:
JAVA_HOME Must point at your Java Development Kit installation.
Required to run the with the "debug" argument.
JRE_HOME Must point at your Java Runtime installation.
Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME
are both set, JRE_HOME is used.
转到文件夹 tomcat\bin 并运行“catalina.bat”文件以检查 JRE_HOME 变量设置是否正确。
提示:如果 Tomcat 的 bin 文件夹中有一个“setenv.bat”文件,请确保其中没有类似“set "JRE_HOME=..."”的内容,因为它会覆盖您的系统变量,而您不希望这样。
完成所有设置后,转到 VisualVM -> 双击 Tomcat 实例 -> 概述 -> 系统属性 -> 将其复制到某个文本编辑器并搜索“jdk”和“jre”单词。它们旁边的版本现在应该匹配。
内存分析现在应该可用。
关于java - VisualVM - Windows 8 中的内存采样 - Tomcat 7 作为服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17429687/