如何创建作为Windows服务运行的Java进程的内存转储?使用jVisualVM,jstack或jconsole等工具,我无法看到该过程,因为该服务使用系统帐户运行。
编辑:使用jVisualVM,我可以看到该过程,但它只显示“此JVM不支持。”
答案 0 :(得分:1)
要使用这些工具,您需要以与服务相同的用户身份运行。如果您不需要此安全功能,则需要为服务器设置JMX以允许远程访问(这也可以在与不同用户相同的框中工作)
如果使用taskmgr
创建低级别内存转储,则无法找到任何可以理解输出的工具。您需要使用Java工具来触发转储。
答案 1 :(得分:0)
如果您使用的是Windows 7 / Vista,请以管理员身份运行taskmgr
,找到您的进程,右键单击“创建内存转储”。如果他们以管理员身份运行,您的其他工具也可以正常工作。需要提升该进程以获取不属于您的进程的内存转储。