前言
此系列文章長期連載,旨在記錄常見bug問題,供大家調(diào)試自查使用
bug描述
linux虛擬機(jī)安裝的openJDK,但運(yùn)行jstack等相關(guān)命令顯示不可用,且查看java的bin目錄下也沒有此文件
分析過程
- 找到j(luò)dk安裝目錄,查看目錄下文件,發(fā)現(xiàn)地區(qū)沒有安裝jstack,因?yàn)橛行﹐penJDK版本的確沒有此文件:
[root@localhost bin]# which java
/usr/bin/java
[root@localhost bin]# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 3月 21 00:25 /usr/bin/java -> /etc/alternatives/java
[root@localhost bin]# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 73 3月 21 00:25 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/bin/java
[root@localhost bin]# cd /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/bin
[root@localhost bin]# ls
java jjs keytool orbd pack200 policytool rmid rmiregistry servertool tnameserv unpack200
- 查看對應(yīng)jmap的yum源文件,此時發(fā)現(xiàn)很多可用的yum源文件,選擇對應(yīng)我服務(wù)器版本的配置
\[root@localhost bin]# yum whatprovides '*/jmap'
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.tuna.tsinghua.edu.cn
* epel: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.tuna.tsinghua.edu.cn
* updates: mirrors.tuna.tsinghua.edu.cn
1:java-1.6.0-openjdk-devel-1.6.0.41-1.13.13.1.el7_3.x86_64 : OpenJDK Development Environment
源 :base
匹配來源:
文件名 :/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.41.x86_64/bin/jmap
1:java-1.7.0-openjdk-devel-1.7.0.191-2.6.15.5.el7.x86_64 : OpenJDK Development Environment
源 :base
匹配來源:
文件名 :/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64/bin/jmap
.........
選擇對應(yīng)配置信息
1:java-1.8.0-openjdk-devel-1.6.0.41-1.13.13.1.el7_3.x86_64 : OpenJDK Development Environment 源 :base 匹配來源: 文件名 :/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.41.x86_64/bin/jmap
yum安裝
yum install java-1.8.0-openjdk-devel-1.6.0.41-1.13.13.1.el7_3.x86_64
安裝完后jstack就可用了.