前言
jstack是java自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息。通常用来找出最耗cpu的线程并定位错误代码。
问题
你在使用jstack命令的时候,有的时候会收到提示 command not found…,告诉你jstack命令是不存在的。于是,你就到处的查找jstackd的安装方法,但都是一无所获。
解决思路
1.如果你在网上寻找jstack的安装方法,网上可能会告诉你,jstack是在JDK中的,OpenJDK是不支持的。于是当你重新使用系统的源自带的JDK后,发现jstack能用了,就会认为这是真的。但是,实际上在 大多数 LINUX发行版本里,内置和通过软件源安装的JDK,都是安装的OpenJDK。 这个说法是错误的。
2.进入你解压并安装的jdk的文件夹的bin目录下,java常用的命令都在这里,如果是里面没有jstack等文件,说明这个jdk的包是不完整的或版本不对,需要换一个jdk的包就可解决。
3.如果你的jdk的文件夹 的bin目录下,存在jstack。而你执行jstack的命令,提示没有命令。那么,你可以检查的环境变量是否错误。
4.如果你的环境变量没有问题,那么记得读取一下你加入变量的配置文件。(例如:source /etc/profile)
5.到第4步的时候,基本就成功了,执行jstack,即可使用。