我运行 JVisualVM(Windows XP、Sun Java 1.6.0.13、32 位客户端 VM)来监控远程应用程序(Linux、Sun Java 1.6.0.07、64 位服务器 VM)。在启动实际的远程应用程序之前,我jstatd
使用所有访问策略在远程计算机上启动:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
然后我使用命令行启动实际的应用程序
java -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=3333
compileTest.Main
从客户端机器上,我可以看到远程应用程序并对其进行监控。我也可以进行线程转储等。不幸的是,堆转储按钮是灰色的。
如何使用 JVisualVM 从远程监控的应用程序中获取堆转储?
我尝试使用 jConsole。使用 jConsole,可以使用 com.sun.management.HotSpotDiagnostic dumpHeap 操作进行远程堆转储。我希望将转储传输到客户端并使用 JVisualVM 提供的工具进行分析。我怎样才能做到这一点?