1. centos7安装 java 显示java -version成功 但javac命令找不到
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息。
如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid
如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。
l 不同的 JAVA虚机的线程 DUMP的创建方法和文件格式是不一样的,不同的 JVM版本, mp信息也有差别。
l 在实际运行中,往往一次 mp的信息,还不足以确认问题。建议产生三次 mp信息,如果每次 mp都指向同一个问题,我们才确定问题的典型性。
命令格式
$jstack [ option ] pid
$jstack [ option ] executable core
$jstack [ option ] [server-id@]remote-hostname-or-IP
pid: java应用程序的进程号,一般可以通过jps来获得
executable:产生core mp的java可执行程序
core:打印出的core文件
remote-hostname-or-ip:远程debug服务器的名称或IP
server-id: 唯一id,假如一台主机上多个远程debug服务
3. linux怎么安装jstack工具
CentOS下需来要安装一个自openjdk-devel的rpm包
yuminstalljava-1.8.0-openjdk-devel-1.8.0.171-7.b10.el7.x86_64
这个包的来源可查询:
yumlist--showplicate|grepjava-1.8|grep171
4. 查看JAVA进程中哪个线程CPU消耗最高
1.如果在linux的系统下抄面, 可以使用袭 ps -eLf 列出thread的cpu的使用率
2.导出java运行的线程信息
jstack 进程id(jps查看)
jstack 进程id > ps.txt
jstack -l 进程id (窗口打印)