jdk 常见指令的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

记录下自己使用过的jdk 指令


一、jps

在Java中,jps是一个用于查看Java进程的命令行工具。它可以显示当前系统中正在运行的Java进程的进程ID(PID)和主类名。

以下是一些常用的jps命令选项:

jps:显示当前系统中所有正在运行的Java进程的PID和主类名。

jps -l:显示当前系统中所有正在运行的Java进程的PID、主类名和JAR文件路径。

jps -m:显示当前系统中所有正在运行的Java进程的PID、主类名和传递给主类的参数。

jps -v:显示当前系统中所有正在运行的Java进程的PID、主类名和传递给主类的参数,以及JVM的启动参数。

使用jps命令可以方便地查看Java进程的信息,特别是在需要查找特定进程或调试Java应用程序时非常有用。

在自己的 idea 中的 terminal 窗口中输入该指令可以看到以下的进程

lb@lbpc:~/IdeaProjects/xxx $ jps
<pid>  主类名
26929 Launcher
5686 Main
4822 LbCommunitymanagemensystemApplication //这个进程就是 我刚起项目的进程
// 后期通过 jstack 可以看到项目运行进程信息 
6198 st
26856 Launcher
12108 Jps
4815 Launcher

如果你的服务器中部署了多个项目,使用jps命令 发现 主类名或者项目信息不好定位:

[root@xxxxxxxxxxx tomcat-xxxx]# jps
8624 Bootstrap
12642 WrapperSimpleApp
20966 Bootstrap
1194 Bootstrap
12507 Bootstrap
28860 Jps
18638 Bootstrap
15135 Bootstrap

//像这样, 这里 的Bootstrap都是我服务器运行的项目,这样就可以 使用
//  ps -ef|grep tomcat 或者 ps -ef|grep java  指令找到对应的 项目信息 和他的pid 

二、jstack

jstack是Java中一个常用的命令行工具,用于打印指定Java进程的堆栈信息。它可以帮助开发者和运维人员诊断和分析Java应用程序在运行过程中出现的问题,定位异常原因,进行优化,并避免类似问题再次发生。

jstack指令的主要功能有两个:

针对活着的进程(running processes)进行本地(local)或远程(remote)线程 dump。
针对core文件(core dump)获取Java堆栈信息(Java stack trace)和本地(native)堆栈信息。
在使用jstack时,需要指定相应的选项和参数。以下是一些常用的选项和参数:

-l:表示打印线程列表。
-m:表示打印进程内存信息。
-o:表示将堆栈信息输出到文件。
-p:表示指定要分析的进程ID(process ID)。
-r:表示打印线程的实时状态(real-time status)。
-t:表示打印线程跟踪(thread trace)。
-c:表示打印类加载器信息。
-f:表示指定要分析的core文件。

线程的状态分析:
死锁, Deadlock(重点关注)
执行中,Runnable
等待资源, Waiting on condition(重点关注)
等待获取监视器, Waiting on monitor entry(重点关注)
暂停,Suspended
对象等待中,Object.wait() 或 TIMED_WAITING
阻塞, Blocked(重点关注)
停止,Parked

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值