前言

此系列文章长期连载,旨在记录常见bug问题,供大家调试自查使用

bug描述

linux虚拟机安装的openJDK,但运行jstack等相关命令显示不可用,且查看java的bin目录下也没有此文件

分析过程

  1. 找到jdk安装目录,查看目录下文件,发现地区没有安装jstack,因为有些openJDK版本的确没有此文件:

 

[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
  1. 查看对应jmap的yum源文件,此时发现很多可用的yum源文件,选择对应我服务器版本的配置

 

\[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

.........


  1. 选择对应配置信息
    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

  2. yum安装
    yum install java-1.8.0-openjdk-devel-1.6.0.41-1.13.13.1.el7_3.x86_64

  3. 安装完后jstack就可用了.

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐