5

当尝试使用 Java Memory Analayzer 获取我的 eclispe rcp 应用程序的 Heapdump 时,我收到以下错误消息:

Error creating heap dump. jmap exit code = 1
4120: Unable to attach to 32-bit process running under WOW64
The -F option can be used when the target process is not responding

操作系统:64位Windows7

Java 内存分析器:64 位

应用:32位

我尝试了 32 位和 64 位变体并得到了同样的错误。

oemone 能告诉我问题是什么吗?

4

2 回答 2

9

这意味着您使用的 jmap 是与 JDK 的 64 位版本捆绑在一起的。如果您使用此 jmap 从 32 位 JVM 获取堆转储,则会弹出此错误。

解决方案:使用与 32 位 JDK 捆绑的 jmap 版本。

于 2013-10-30T06:29:57.070 回答
1

假设您有 Java 64 位版本(对于诸如 jvisualvm 和 jstack 之类的 Java 工具也是如此)和 IDE/路径,无论您在哪里运行 javac 命令,在类路径中都有 java 32 位,那么您会看到这样的问题。如果您尝试从

1)java VisualVM,那么它可能无法正确加载您的进程,这意味着您将无法为有问题的进程进行线程/堆转储。

2)来自 jstack ,那么它也会像你上面提到的那样产生同样的问题。

要解决此问题,请确保版本中的所有内容都匹配。

于 2019-06-25T10:32:59.183 回答