Linux 查看 Java 进程常用命令

1. jps(推荐,JDK 自带,最简单)

需要安装 JDK(仅 JRE 没有 jps)

bash

复制代码
# 只显示进程号+主类名
jps

# 显示完整主类路径
jps -l

# 显示JVM启动参数
jps -v

# 显示传入main方法的参数
jps -m

示例输出:

plaintext

复制代码
12580 org.apache.tomcat.startup.Bootstrap

2. ps + grep 通用方式(无需依赖 JDK)

bash

复制代码
# 基础查询
ps -ef | grep java

# 更干净,过滤掉grep自身进程
ps -ef | grep [j]ava

# 查看线程(jstack需要pid)
ps -T -p <进程PID>

3. pgrep 快速只获取 PID

bash

复制代码
# 列出所有java进程pid
pgrep java

# 连同进程信息
pgrep -af java

4. 结合 top 查看 Java 进程资源占用

bash

复制代码
# 全局看
top

# 只监控指定java进程
top -p <PID>

# H键显示线程(top界面内按H)

配套常用排查命令(拿到 PID 后)

bash

复制代码
# 打印线程栈
jstack <PID>

# 堆内存概况
jmap -heap <PID>

# 导出堆dump
jmap -dump:format=b,file=heap.hprof <PID>

进程信息解读

plaintext

复制代码
root     3755864       1  0 Aug04 ?        00:52:24 java --module-path /home/project/test-fws/lib --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED -server -Xms512m -Xmx1024m -jar /home/project/test-fws/jar/test-configure-server.jar --app.id=test-fws
  1. PID:3755864
  2. 运行用户:root
  3. 启动时间:Aug04(8 月 4 日启动)
  4. 运行时长:00:52:24 CPU 累计耗时 ≠ 进程运行时长
  5. 程序包:test-configure-server.jar
  6. JVM 参数:
    • -server:服务端模式
    • -Xms512m:初始堆内存 512MB
    • -Xmx1024m:最大堆内存 1GB
    • --add-opens:打破模块封装,反射兼容旧代码
  7. 业务参数:--app.id=test-fws

常用操作(直接复制,PID 替换为 3755864)

bash

复制代码
# 1.查看完整启动命令(确认有无被截断)
cat /proc/3755864/cmdline | tr '\0' ' ';echo

# 2.查看当前堆内存使用
jmap -heap 3755864

# 3.打印线程栈(排查死锁、线程阻塞)
jstack 3755864 > thread.log

# 4.导出堆dump(内存溢出分析,谨慎!会暂停进程)
jmap -dump:format=b,file=ctg-fws-heap.hprof 3755864

# 5.实时观察CPU/内存
top -p 3755864

# 6.优雅停止服务
kill 3755864
# 强制停止(尽量不用)
# kill -9 3755864
相关推荐
睡一觉就好了。2 小时前
Linux 信号机制
linux·运维·网络
正点原子2 小时前
【正点原子Linux连载】 第十章 pinctrl和gpio子系统实验 摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南
linux·运维·驱动开发
周GZ3 小时前
简单讲解Java中静态方法与 实例方法
java·开发语言
疯狂打码的少年3 小时前
【数据结构】树的基本概念与二叉树定义
java·数据结构·笔记·算法
气泡水。3 小时前
RHCSA笔记实记
linux·笔记
波特率1152003 小时前
linux当中的六大进程间通信方式
linux·嵌入式·ipc
冠希陈、3 小时前
Nginx部署SSL,导致多站点串站问题
运维·nginx·ssl
RisunJan3 小时前
Linux命令-ssh-keyscan(从主机收集公钥)
linux·ssh
こ进制掌控者3 小时前
局域网电脑SMB访问NAS,提示用户名或密码不正确。
运维·服务器