使用任务管理器 (最简单、最常用)
这是最快、最直接的方法,适合日常快速检查。

-
打开任务管理器:
- 按快捷键
Ctrl + Shift + Esc。 - 或者,在任务栏上点击右键,选择“任务管理器”。
- 或者,按
Ctrl + Alt + Delete,然后选择“任务管理器”。
- 按快捷键
-
切换到“详细信息”或“进程”选项卡:
- 在较新版本的 Windows (如 Windows 10/11) 中,点击左下角的“详细信息”选项卡。
- 在较旧版本的 Windows (如 Windows 7) 中,直接点击“进程”选项卡。
-
查找 Java 进程:
- 方法 A (按映像名称):在进程列表中,找到名为
java.exe的进程,你可以点击“名称”列进行排序,这样所有 Java 进程都会排在一起。 - 方法 B (按描述):切换到“详细信息”选项卡后,点击“描述”列进行排序,Java 进程的描述通常是 "Java(TM) Platform SE Binary"。
- 方法 A (按映像名称):在进程列表中,找到名为
-
查看关键信息:
(图片来源网络,侵删)- PID (进程 ID):每个进程的唯一标识符,在排查问题时非常有用。
- 命令行:在“详细信息”选项卡中,右键点击列标题,选择“选择列”,勾选“命令行”,这样你就能看到启动这个 Java 进程时完整命令,包括主类名和传入的 JVM 参数,这对于确认是哪个程序至关重要。
优点:
- 无需安装任何额外软件。
- 操作简单直观,可以快速看到进程的资源占用(CPU、内存)。
缺点:
- 信息有限,无法直接查看 Java 内部信息(如内存堆、线程状态)。
使用命令行 (功能强大、适合脚本)
如果你习惯使用命令行或者需要将结果用于脚本,jps 和 tasklist 是你的不二之选。
使用 jps (Java Virtual Machine Process Status Tool)
jps 是 JDK 自带的工具,专门用于列出目标系统上 Hotspot 虚拟机的 Java 进程信息。

-
打开命令提示符 (CMD) 或 PowerShell:
- 在开始菜单搜索
cmd或powershell,然后打开。
- 在开始菜单搜索
-
确保 JDK 的
bin目录在环境变量PATH中:- 直接在命令行中输入
jps,如果提示“不是内部或外部命令...”,说明 JDK 没有配置好环境变量,你需要先配置好,或者直接到 JDK 的bin目录下执行。
- 直接在命令行中输入
-
基本用法:
jps
这个命令会列出当前机器上所有 Java 进程的 PID 和 主类名 (Main Class)。
示例输出:
1234 MySpringApplication 5678 org.apache.catalina.startup.Bootstrap 9012 sun.tools.jps.Jps1234是进程 ID。MySpringApplication是主类名。9012 sun.tools.jps.Jps是jps工具自身的进程。
-
常用参数:
-l:显示主类的完整包名或 JAR 文件的完整路径。jps -l # 输出示例: # 1234 com.example.MySpringApplication # 5678 /path/to/tomcat/bin/bootstrap.jar
-v:显示传递给 JVM 的参数。jps -v # 输出示例: # 1234 MySpringApplication -Xms512m -Xmx1024m
-m:传递给main方法的参数。jps -m # 输出示例: # 1234 MySpringApplication --server.port=8080
-V:显示通过.hotspotrc或-XX:Flags=指定的标志文件。
使用 tasklist (Windows 原生命令)
tasklist 是 Windows 系统自带的命令,可以列出所有正在运行的进程,不限于 Java。
-
基本用法:
tasklist
-
筛选 Java 进程: 使用
findstr命令来过滤出java.exe进程。tasklist | findstr "java.exe"
示例输出:
java.exe 1234 Services 0 1,856 K java.exe 5676 Console 1 15,234 K- 这里的
1234和5676Java 进程的 PID。
- 这里的
优点:
jps是 Java 专用,信息更精准。tasklist是系统级命令,通用性强。- 都可以方便地集成到批处理脚本或自动化任务中。
缺点:
- 需要打开命令行。
jps需要安装 JDK。
使用专业的 Java 诊断工具 (功能最全面、适合深度分析)
当你需要分析 Java 应用的性能、内存泄漏、线程死锁等问题时,就需要专业的工具了。
VisualVM (JDK 自带)
VisualVM 是一个功能强大的多合一故障排查和性能分析工具,随 JDK 一起发布。
-
启动 VisualVM:
- 打开命令行,进入 JDK 的
bin目录。 - 运行
jvisualvm.exe。
- 打开命令行,进入 JDK 的
-
使用 VisualVM:
- 在左侧的“本地”节点下,你会看到本机上所有正在运行的 Java 应用。
- 双击你想要分析的应用。
- 在右侧的标签页中,你可以查看:
- 概述:基本信息和系统属性。
- 监视:实时监控 CPU、堆内存、类加载、线程数等。
- 线程:查看所有线程的状态,可以轻松发现死锁。
- 抽样器:对 CPU 或内存进行抽样分析,找到性能瓶颈或内存泄漏点。
- MBeans:查看和管理 JMX MBeans。
优点:
- 功能极其强大,集成了多种分析功能。
- 图形化界面,直观易用。
- 免费,随 JDK 一起提供。
缺点:
- 功能复杂,初学者可能需要学习成本。
JConsole (JDK 自带)
JConsole 是另一个 JDK 自带的轻量级监控和管理控制台。
-
启动 JConsole:
- 打开命令行,进入 JDK 的
bin目录。 - 运行
jconsole.exe。
- 打开命令行,进入 JDK 的
-
使用 JConsole:
- 启动后,它会自动扫描本机所有 Java 进程。
- 选择一个进程连接。
- 它提供与 VisualVM 类似的监控功能,如内存、线程、类、概览等,但功能相对简化。
优点:
- 非常轻量,启动快。
- 适合快速查看基本运行状态。
缺点:
- 分析功能不如 VisualVM 强大。
总结与对比
| 工具/方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 任务管理器 | 简单直观,无需安装,可看资源占用 | 信息有限,无法分析 Java 内部状态 | 日常快速检查 Java 进程是否存在,查看资源占用情况 |
jps 命令 |
专为 Java 设计,信息精准(主类、JVM参数) | 需要安装 JDK,命令行操作 | 脚本自动化、快速获取 Java 进程的 PID 和主类名 |
tasklist 命令 |
Windows 原生,通用性强,可筛选所有进程 | 信息不如 jps 精准 |
命令行环境下,快速查找 Java 进程的 PID |
| VisualVM | 功能最全(监控、分析、线程、内存),图形化界面 | 功能复杂,有一定学习成本 | 深入排查性能问题、内存泄漏、线程死锁等 Java 应用故障 |
| JConsole | 轻量级,启动快,随 JDK 自带 | 功能相对简化 | 快速、轻量地监控 Java 应用的基本运行状态 |
实战场景建议
- “我只是想看看我的 Java 程序跑起来了没,占了多少内存?”
- 首选:任务管理器。
- “我想写个批处理脚本,自动重启某个 PID 的 Java 程序。”
- 首选:
jps或tasklist来获取 PID。
- 首选:
- “我的网站很卡,怀疑是 Java 程序的问题,想深入分析一下。”
- 首选:VisualVM,用它来分析 CPU、内存和线程,基本能定位大部分问题。
- “我想知道这个 Java 进程到底是哪个 JAR 包跑起来的?”
- 首选:任务管理器 -> 详细信息 -> 右键添加“命令行”列;或者
jps -l。
- 首选:任务管理器 -> 详细信息 -> 右键添加“命令行”列;或者
