必须用ps或jps准确识别Java进程PID:ps aux | grep java | grep -v grep可过滤干扰项,jps -l则直接显示业务进程PID及主类/JAR路径。

当你需要终止某个卡死的Java应用、调试端口冲突,或确认Spring Boot服务是否真正退出时,必须准确识别出所有正在运行的Java进程及其唯一PID,否则kill命令会因找不到目标而失败。
用ps命令快速列出全部Java进程及PID
打开终端,执行以下命令:
ps aux | grep java
该命令会输出所有含“java”字符串的进程行,每行第一列是用户名,第二列就是【PID】,最后一列是完整启动命令。注意:grep自身也会被匹配出来,所以结果里总多出一行带“grep java”的干扰项。
立即学习“Java免费学习笔记(深入)”;
为排除干扰,直接使用过滤后命令:
ps aux | grep java | grep -v grep
精准定位真实Java业务进程(排除JDK工具和IDE内置JVM)
开发环境中常混杂jps、jconsole、IntelliJ内置编译器等非业务Java进程,它们会干扰判断。只看含启动特征的关键字更可靠:
方法一:匹配-jar参数(适用于jar包直接启动)
ps aux | grep -E 'java.*-jar'
方法二:匹配Main类名或包路径(适用于IDE或脚本启动)
ps aux | grep -E 'java.*com\.|java.*org\.' | grep -v grep
【注意:com\. 和 org\. 中的反斜杠不能省略,否则会误匹配到任意含com或org的路径】
用jps命令直取Java进程PID(需JDK环境)
jps是JDK自带的轻量级工具,专为Java进程设计,不显示无关进程,结果干净。
第一步:确认已安装JDK并可用
java -version
第二步:执行jps获取基础信息
jps
第三步:加-l选项显示完整主类或Jar路径,便于区分多个Spring Boot实例
jps -l
输出示例:
72845 /Users/me/app.jar
72901 com.example.MyApp
73012 sun.tools.jps.Jps
前两行的首列数字即为【PID】,最后一行是jps自身进程,可忽略。


















