在没有JDK的情况下在JRE 6(Windows)上堆转储

98p*_*key 3 java heap memory-leaks dump

有没有办法在没有安装JDK的远程计算机上创建堆转储?

我无法更改安装/设置,它在Windows上运行.所以我可以访问命令行工具.

问题是远程计算机上的Java应用程序冻结(没有内存不足因此-XX:-HeapDumpOnOutOfMemoryError无效)我们需要创建转储.

-XX:+HeapDumpOnCtrlBreak 
Run Code Online (Sandbox Code Playgroud)

也没有选择,因为它不再支持JDK6 +.

出于安全原因,不允许使用JMX.

有任何想法吗?谢谢您的帮助!

编辑:

  • 视窗
  • 没有JDK
  • 没有JMX

98p*_*key 5

我想我解决了这个问题.

你必须使用JDK的一些文件"修补"你的JRE(同一版本的课程 - 如果你正在运行jre6uXX,你需要jdk6uXX中的相应文件)

复制以下文件:

  • \ JDK6uXX\bin\attach.dll - >%JAVAJRE_HOME%\ bin\
  • \ JDK6uXX\bin\jmap.exe - >%JAVAJRE_HOME%\ bin\
  • \ JDK6uXX\lib\tools.jar - >%JAVAJRE_HOME%\ lib \

没有文件被覆盖,JRE不应受此影响.

现在你可以使用jmap就好了转储;-)

我感谢您的帮助!再见