0

我想为 Windows 10 机器进行线程转储。我正在使用java version "1.8.0_131". 要进行线程转储,我需要使用 jmap 命令,然后是进程。但是在我的 JDK 中我没有找到 jmap 实用程序。即使我在我的机器上尝试过,我也会收到这样的错误:

C:\Users\Name\Desktop\JavaHeap>jmap
'jmap' is not recognized as an internal or external command,
operable program or batch file.

我的 JDK 版本

C:\Users\Name\Desktop\JavaHeap>java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) Client VM (build 25.131-b11, mixed mode, sharing)

而且它似乎在 Client VM 上运行。有没有办法将其更改为 Server Vm?

--INFO-- 我把我的 JRE 保存在C:\Program Files (x86)\Java\jre1.8.0_131. 我创建了系统环境变量 JAVA_HOME 并保留了它的路径。而且在 PATH 变量中我也添加了路径。

谢谢

4

1 回答 1

1

听起来像一个PATH问题。

确保文件jmap.exe位于Windows的系统变量PATH中指定的路径中。

当您添加C:\Program Files (x86)\Java\jre1.8.0_131到变量中时,您确定jmap.exe位于那里吗?通常它在JDK\bin而不是JRE\bin中。

JRE(Java 运行时环境)仅包含运行 Java 程序所需的东西,而 JDK 还包括对开发有用的工具(Java Developer Kit)。

Windows 在系统PATH变量中指定的所有路径中搜索命令。如果这些位置内没有jmap.exe,它将找不到它。

如您所见,我的 JDK 包含jmap.exe在此处输入图像描述

如果你的不包括一个,我会检查你从哪里得到它并尝试另一个来源,例如Oracle

于 2017-07-01T18:18:16.437 回答