繁体   English   中英

找不到 jmap 命令

[英]jmap command not found

我正在尝试在我的CentOS服务器上使用jmap命令,但它一直告诉我即使我安装了 JDK 也找不到该命令。

这是命令java -version的输出:

java version "1.7.0_25"
OpenJDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

我该如何解决这个问题?

您应该能够在 Redhat/ 上的java-1.8.0-openjdk-devel-debugjava-1.7.0-openjdk-devel-debugjava-1.6.0-openjdk-devel-debug包中找到jmap森托斯。 要安装它,请以 root 身份运行以下命令:

yum install java-1.8.0-openjdk-devel-debug

为了完整起见,这是检查哪些包包含 jmap 的命令:

yum whatprovides '*/jmap'

这是一个示例输出:

1:java-1.6.0-openjdk-devel-1.6.0.37-1.13.9.4.el7_1.x86_64 : OpenJDK Development Environment
Repo        : updates
Matched from:
Filename    : /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.37.x86_64/bin/jmap



1:java-1.7.0-openjdk-devel-1.7.0.91-2.6.2.3.el7.x86_64 : OpenJDK Development Environment
Repo        : base
Matched from:
Filename    : /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64/bin/jmap



1:java-1.8.0-openjdk-devel-1.8.0.65-3.b17.el7.x86_64 : OpenJDK Development Environment
Repo        : base
Matched from:
Filename    : /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/bin/jmap



1:java-1.8.0-openjdk-devel-debug-1.8.0.65-3.b17.el7.x86_64 : OpenJDK Development Environment with full debug on
Repo        : base
Matched from:
Filename    : /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64-debug/bin/jmap



1:java-1.8.0-openjdk-devel-debug-1.8.0.65-3.b17.el7.x86_64 : OpenJDK Development Environment with full debug on
Repo        : @base
Matched from:
Filename    : /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64-debug/bin/jmap

以下对我有用:

sudo apt-get install openjdk-8-jdk openjdk-8-dbg

我的情况有点奇怪(在openjdk:8-jre Docker 镜像中运行),但这种组合有效

cat /etc/debian_version # 8.6
apt install -t jessie-backports openjdk-8-jre-headless ca-certificates-java
apt-get install -f -y openjdk-8-jdk-headless
apt-get install -f -y openjdk-8-dbg

java 路径必须在“PATH”系统属性中。

$JAVA_HOME/bin

它不是 JRE 的默认设置——您应该可以使用以下命令安装它

yum install java-1.8.0-openjdk-devel-debug

centos 上的 OpenJDK 不包含 jmap 实用程序。 在另一个平台上测试或使用jhat java_pid1234.hprof命令在另一个平台上检查转储。

jhat 在大型转储上运行可能很慢,甚至内存不足! 我使用jhat -port 7000 -J-mx2048m java_pid1234.hprof所以你的电脑需要足够的内存。

我发现在我的系统(elasticsearch 容器)上它被排除在外:

$ grep exclude /etc/yum.conf 
exclude=java-1.8.0-openjdk*

如果我将其注释掉,那么我可以使用yum install ...来查看并安装此软件包yum install ...

对于 Debian“破坏者” - 10.3 -

cat /etc/debian_version # 10.3

echo "deb http://ftp.us.debian.org/debian sid main" > /etc/apt/sources.list.d/buster.list

apt-get update && apt-get install -f -y openjdk-8-jdk-headless openjdk-8-dbg

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM