查看Java进程详细教程:Linux/Windows系统常用方法与技巧

引言

作为Java的运维和开发者,具备查看Java进程的基本技能无疑是我们工作的基础和必不可少的功底。这样就能通过灵活的切换命令的方式,不仅能大幅地提高了对系统的监控、排查进程无响应的问题的效率,也能随时随地的获取到需要的进程ID(PID)从而对其进行如停止、重启或调试等的一系列操作。通过对Linux和Windows两大主流的系统的深入的剖析,我们将从常用的命令到一些较为高级的技巧的全面的介绍,帮助广大Java开发者快速的定位和管理Java的进程.。

一、为什么需要查看Java进程?

查看Java进程详细教程:Linux/Windows系统常用方法与技巧

Java进程是Java应用的运行实例,查看它的核心目的包括:

通过对应用的监控我们就可以初步的确定其是否正常的启动了,如其是否能成功的运行等

通过对应用的实时监控和定位,尤其是在其出现卡顿、内存的突发性泄漏或无响应等异常时,通过对进程的CPU/内存占用等的深入的分析调试,就能初步的定位出问题的原因

)。

二、Linux系统查看Java进程的常用方法

Linux系统下,查看Java进程的工具主要有通用进程命令(ps)和Java专用命令(jps),两者结合使用可覆盖大部分场景。

1. ps命令:通用进程查询(推荐)


是Linux系统中最常用的进程查看命令,通过过滤“java”关键词,可快速找到所有Java进程。

命令格式:

ps -ef | grep java 

``` ```  

参数解释:

:显示系统中所有进程;

:以完整格式输出(包含用户、PID、父PID、启动时间等信息);

:过滤出包含“java”关键词的进程(即Java进程)。

输出示例:

root      1234  5678  0 09:00 ?        00:00:30 java -jar /opt/app.jar  

user      9876  1234  0 09:30 ?        00:00:10 java -cp /home/user/lib/* com.example.Application  

``` ```  

字段解读:


2. jps命令:Java专用进程查询(便捷)


(Java Virtual Machine Process Status Tool)是JDK自带的工具,专门用于查看Java进程,输出更简洁(仅显示PID和进程描述)。

命令格式:

jps [参数] 

``` ```  

常用参数:

:显示完整类名或JAR包路径(推荐,便于区分不同应用);

:显示JVM启动参数(如);

:显示main方法的参数(如应用启动时传递的命令行参数)。

输出示例:

1234 /opt/app.jar  

9876 com.example.Application  

``` ```  

注意事项:

需要JDK环境(JRE不包含此工具),需确保环境变量配置正确;

默认仅显示当前用户的Java进程,若需查看其他用户的进程,需用( root权限)。

三、Windows系统查看Java进程的常用方法

Windows系统下,查看Java进程的方式分为图形界面(任务管理器)和命令行(tasklist、jps),适合不同用户习惯。

1. 任务管理器:图形界面(直观)

通过Windows自带的图形化的任务管理器,普通的用户就可以轻松的快速的查看系统中正在运行的Java进程的状态等信息。

查看Java进程详细教程:Linux/Windows系统常用方法与技巧

打开方式:

快捷键:;

右键点击任务栏,选择“任务管理器”。

操作步骤:

切换到详细信息标签(Windows 10及以上版本);

在“名称”列中找到?(控制台应用)或?(无控制台应用,如GUI程序);

查看进程的PID(进程ID)、内存使用(私有工作集)等信息。

其特点就是直观易懂,但也由此使得我们无法直接的查看进程的启动命令或JVM参数等详细的信息。

2. tasklist命令:命令行通用查询


是Windows系统的命令行进程查看工具,类似Linux的命令,可通过过滤“java”关键词找到Java进程。

命令格式:

tasklist | findstr java 

``` ```  

输出示例:

java.exe     1234  Console    1    512,000 K 

javaw.exe    5678  Services   0    1,024,000 K 

``` ```  

字段解读:


3. jps命令:Java专用查询(与Linux一致)

Windows系统下的命令与Linux用法完全一致,需配置JDK环境变量(中添加)。

命令格式(PowerShell或命令提示符):

jps -l

``` ```  

输出示例:

1234 C:\opt\app.jar  

5678 com.example.Application  

``` ```   


四、查看Java进程的进阶技巧

通过对基础的命令的把握不仅能更好的使用相关的软件工具还能从中汲取到更高的效率的使用技巧中如:利用快捷键的组合、将常用命令的快捷方式设为桌面或工具栏的图标等

1. 过滤特定Java进程

当系统中有多个Java进程时,可通过启动命令中的关键词(如JAR包名称、主类)过滤:

Linux:

ps -ef | grep java | grep "app.jar"   # 过滤出启动app.jar 的进程 

``` ```  

Windows:

tasklist | findstr "java" | findstr "app.jar" 

``` ```   


2. 查看Java进程的详细信息

除了PID,还可查看进程的CPU/内存占用、GC情况、线程栈等详细信息:

查看Java进程详细教程:Linux/Windows系统常用方法与技巧

Linux:

查看CPU/内存占用:(如);

查看GC情况:(每1秒输出一次GC统计);

查看堆内存:(显示堆内存分配情况)。

Windows:

任务管理器中选中进程,右键选择“转到详细信息”,可查看更详细的资源占用;

使用(JDK自带)或工具,通过图形界面查看进程状态(需配置远程监控参数:?)。

3. 远程查看Java进程

若需要查看服务器上的Java进程(如云服务器),可通过以下方式:

Linux服务器:通过SSH登录后,使用或命令;

Windows服务器:通过远程桌面连接后,使用任务管理器或命令;

通过对JVM的相应的参数的配置下,我们便可对远程的主机进行跨系统的远程监控的操作,例如通过工具便可对其进行添加等操作。

五、常见问题与解决方法

1. jps命令找不到进程?

原因:

JDK环境变量未配置(无输出);

当前用户无权限查看其他用户的进程(如root用户启动的进程,普通用户无法用查看);

进程不是用JDK启动的(如用JRE启动,无法识别)。

解决:

配置和环境变量(如);

用(Linux)或“以管理员身份运行”命令提示符(Windows);

确认进程启动方式(用而非)。

2. ps/tasklist命令过滤不出Java进程?

原因:

进程名称不是“java”(如用自定义脚本启动,进程名称可能为脚本名);

过滤条件有误(如Windows下用,大小写敏感)。

解决:

Linux下用(显示所有用户的进程);

Windows下用(小写“java”),或(针对无控制台应用)。

3. Windows下jps命令无法运行?

原因:JDK环境变量未配置(命令不在中)。

解决:

右键“此电脑”→“属性”→“高级系统设置”→“环境变量”;

编辑变量,添加(为JDK安装路径,如);

重启命令提示符或PowerShell。

结尾

查看Java进程是Java运维的基础技能,不同系统有不同的工具选择:Linux下推荐用+,Windows下推荐用任务管理器+。掌握这些方法后,你可以快速定位Java进程,高效解决应用运行中的问题。

但更重要的是,平时多练习这些命令,熟悉它们的输出格式和参数,这样当我们遇到问题时才能游刃有水,从而更好地利用这些命令,提高我们的工作效率.。通过对Java应用的可学习、可观测、可控等多方面的完善,我们就可以对其进行更为深入的监控,从而大大地提升了Java应用的运维能力。

(注:本文中的命令示例均基于最新版本的Linux(CentOS 8/ Ubuntu 22.04)和Windows(Windows 10/11)系统,不同版本可能略有差异。)


《查看Java进程详细教程:Linux/Windows系统常用方法与技巧》.doc
将本文下载保存,方便收藏和打印
下载文档