【Java可执行命令】(十五)Java进程状态信息获取工具 jps:获取和监控Java进程的状态信息 ~

news2024/10/5 21:13:35

Java可执行命令之jps

  • 1️⃣ 概念
  • 2️⃣ 优势和缺点
  • 3️⃣ 使用
      • 3.1 语法格式
      • 3.2 可选参数:-q
      • 3.3 可选参数:-m
      • 3.4 可选参数:-l
      • 3.5 可选参数:-v
      • 3.6 可选参数:-V
  • 4️⃣ 应用场景
  • 🌾 总结

在这里插入图片描述

1️⃣ 概念

JPS(Java Virtual Machine Process Status Tool)Java Development Kit(JDK)提供的一个命令行工具,它用于查看运行在Java虚拟机(JVM)中的所有Java进程。该工具旨在提供一种方便的方式来获取和监控Java进程的状态信息,以帮助开发人员进行调试、性能分析或诊断。

JPS 是一个Java虚拟机进程状态工具,用于列出当前系统中正在运行的Java进程,并显示与每个进程相关的信息,如进程ID、主类名等。Java进程是指在Java虚拟机上运行的一个独立Java应用程序或服务的实例。

JPS使用 Java Attach API 来检索Java进程信息。它通过本地系统工具(例如ps)或平台特定的API(如JNI)获取正在运行的Java进程列表,并提取进程ID和主类名等相关信息。

2️⃣ 优势和缺点

优点:

  • 方便:提供了一种简单的方法来查看Java进程的状态信息;
  • 快速:快速列出当前运行的Java进程,包括进程ID和主类名称,不会对目标进程产生影响;
  • 实时:可以在动态的运行过程中通过不断查询进程状态来监控Java进程。

缺点:

  • 不支持远程机器:只能查看本地运行的Java进程,无法直接检测远程服务器上的进程;
  • 局限性:仅提供了有限的进程信息,不能提供详细的线程级别或资源使用情况。

3️⃣ 使用

3.1 语法格式

jps 命令的使用语法如下:

jps [-q] [-mlvV] [<hostid>]

其中,[-q] [-mlvV] 表示可选参数,[<hostid>]表示可选的主机标识符参数。这个参数用于指定要查询的远程主机的标识符或地址,其格式如 <hostname>[:<port>]

默认情况下,jps 命令将列出运行在本地主机上的Java进程。然而,通过提供 [ hostid ] 参数,你可以指定某个远程主机来查询该主机上运行的Java进程。

[ hostid ] 可以是远程主机的计算机名称、IP地址或其它特定主机标识符。根据网络环境和配置,需要确保具有连接到远程主机的权限,并且目标主机上已启用 Java 进程管理功能。

以下是一些示例使用 [ hostid ]jps 命令:

  • jps -l myRemoteHost: 列出名为 “myRemoteHost” 的远程主机上的 Java 进程。
  • jps -v 192.168.1.100: 列出 IP 地址为 “192.168.1.100” 的远程主机上的 Java 进程。

注意,远程主机的访问权限、网络连接和远程 Java 管理配置方面的设置都会影响是否能够成功连接并获取远程主机的 Java 进程信息。

图1 jps连接失败时的情况

jps 支持的可选参数信息汇总如下:

参数说明
-V显示 jps 工具的版本信息
-l显示完整的类名而非缩写
-m显示传递给主类main()方法的参数
-v显示虚拟机的启动参数
-q仅显示进程ID,省略主类的全限定名

从上边信息可以看到, jps 命令对于查看Java进程的一些操作支持,大家可以根据自己的需求参照表格选择所需操作命令。

3.2 可选参数:-q

jps -qjps 命令的一个选项,用于在列出 Java 进程时仅显示进程ID,而省略主类的全限定名。

在命令行中运行 jps -q 时,它将以静默模式输出正在运行的 Java 进程的进程ID,每个进程对应一行。这允许更方便地获取进程ID信息,而无需关注与进程相关联的主类名。

以下是一个使用 jps -q 的示例输出:

1234
5678

上述示例表示当前有两个正在运行的 Java 进程,其进程ID分别为 1234 和 5678。

使用 jps -q 可以帮助简化输出,特别是在需要处理或传递 Java 进程ID 的场景下,例如与其他命令或脚本进行集成、进行批处理操作等。它提供了一种更紧凑和简洁的方式来获取 Java 进程的标识符信息,而不包括多余的详细信息。

3.3 可选参数:-m

jps -mjps 命令的一个选项,用于在列出 Java 进程时显示传递给主类 main() 方法的参数。

在命令行中运行 jps -m 时,它将列出正在运行的 Java 进程的详细信息,包括进程ID、主类名和传递给主类 main() 方法的参数。

以下是一个使用 jps -m 的示例输出:

1234 MainClass1 argument1 argument2
5678 MainClass2

上述示例表示当前有两个正在运行的 Java 进程,第一个进程的进程ID为 1234,它的主类名是 MainClass1,并且传递了 argument1argument2 作为 main() 方法的参数。第二个进程的进程ID为 5678,它的主类名是 MainClass2

使用 jps -m 可以获取更多关于运行中的 Java 进程的信息,包括传递给主类的参数。这对于调试和诊断操作非常有用,特别是当你需要确认 Java 进程启动时使用了哪些参数时。此选项提供了查看 Java 进程启动参数的简便方式,可以更好地理解 Java 应用程序的配置和执行情况。

3.4 可选参数:-l

jps -ljps 命令的一个选项,用于在列出 Java 进程时显示完整的主类名,而不是缩写形式。

在命令行中运行 jps -l 时,它将列出正在运行的 Java 进程的详细信息,包括进程ID和完整的主类名。

以下是一个使用 jps -l 的示例输出:

1234 com.example.MainClass1
5678 com.example.subpackage.MainClass2

上述示例表示当前有两个正在运行的 Java 进程。第一个进程的进程ID为 1234,其主类名为 com.example.MainClass1。第二个进程的进程ID为 5678,则对应的主类名为 com.example.subpackage.MainClass2

通过使用 jps -l,可以显示Java进程的完整主类名,而不仅仅是默认的缩写形式。这对于识别和区分具有相似主类名但不同应用程序的进程非常有用,并提供了更准确的标识和查看 Java 进程的方式。

3.5 可选参数:-v

jps -v 是 jps 的一个可选参数之一,在命令行中运行 jps -v 时,它将列出正在运行的Java进程的详细信息,包括每个进程的启动参数。

举例来说,如果你运行 jps -v 命令,会看到以下类似的输出:

1234 MainClass1 -Xmx512m -Dproperty=value
5678 MainClass2 -Xms256m

上述例子表示正在运行两个Java进程,分别为ID为1234的 MainClass1 和 ID为5678的 MainClass2。同时,-Xmx512m 表示其中一个进程设置了最大堆内存大小为 512MB,而 -Dproperty=value 表示该进程还指定了一个系统属性。

3.6 可选参数:-V

jps -V 是 jps 的另一个可选参数。当在命令行中执行 jps -V 时,它将输出 jps 工具的版本信息。

例如,运行 jps -V 命令可能会返回:

JPS (Java Process Status Tool) version 11.0.7

上述输出表示使用的 jps 版本为 11.0.7。

注意两个参数-v-V的区别,jps -v 用于列出Java进程的详细信息和启动参数,而 jps -V 用于显示 jps 工具的版本信息。

4️⃣ 应用场景

  • 进程监控和管理:可用于定期检查Java进程是否在运行,以及获取进程ID和主类名称等信息;
  • 故障排除和性能调优:与其他Java命令结合使用,如 jstackjmap等,以便对Java进程进行详细的线程分析和堆内存分析;
  • 调试与开发:用于开发人员识别和查找正在运行的Java进程,并在需要时附加各种调试器进行调试。

🌾 总结

JPS是一个简单但功能强大的Java进程状态工具。它为开发人员提供了一种方便的方式来列出正在运行的Java进程,并显示与每个进程相关的信息。通过与其他Java命令结合使用,可以进行故障排除、性能调优和调试工作。尽管在某些情况下存在一些局限性,但对于监控和管理本地运行的Java进程来说,JPS是一个非常有用的工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/832106.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【BEV感知】1-BEV感知算法介绍

1-BEV感知算法介绍 1 什么是BEV感知算法&#xff1f;1.1 什么是BEV&#xff1f;1.2 什么是感知&#xff1f;1.3 什么是算法&#xff1f;1.4 什么是BEV感知&#xff1f; 1 什么是BEV感知算法&#xff1f; 1.1 什么是BEV&#xff1f; Bird’s-Eye-View&#xff0c;尺度变化小、…

客户端电脑使用 FTP的Cadence_CIS库方法说明 (下)

简介&#xff1a;随着企业的规模扩大&#xff0c;硬件工程师的增多&#xff0c;使用统一服务器上的库管理&#xff0c;可以减少设计错误&#xff0c;提高效率。 使用在FTP上布局Cadence_CIS库&#xff0c;是目前的主流的做法之一&#xff1b; 本文方法&#xff0c;用于已经配置…

【网络基础进阶之路】一文弄懂TCP的三次握手与四次断开

系列文章&#xff1a; 【网络基础进阶之路】路由器间的静态综合详解 文章目录&#xff1a; 一、TCP协议 二、三次握手——建立连接 三、四次断开——结束连接 一、TCP协议 TCP是一种面向广域网的通信协议&#xff0c;目的是在跨越多个网络通信时&#xff0c;为两个通信端…

如何利用闭环思维解决企业营销问题

彼得圣吉在他的畅销书《第五项修炼》一书中主要介绍了“系统思考”的第五项修炼&#xff0c;系统思考的方法有三个基本元件&#xff1a;不断增强的回馈&#xff0c;反复调节的回馈&#xff0c;和时间滞延。其不断增强的回馈其实就是增强闭环理论&#xff0c;其在企业管理中有很…

嘿嘿嘿~卷王来喽~今天我被卷s了,谁也白想活zhuo!

前言 嘿嘿嘿~热乎乎的卷王来喽&#xff0c;卷呀&#xff01;你们怎么不卷&#xff01;&#xff08;啪&#xff01;电脑一合&#xff09;&#xff0c;好&#xff01;今天&#xff0c;我卷了&#xff0c;我得卷s&#xff0c;但是&#xff01;我被卷了&#xff0c;你们也白想活着…

极狐GitLab 10 年开源研发管理实践:4 个核心步骤突破效能瓶颈

目录 研发效能实践的痛点 4 步击破痛点&#xff0c;提升研发效能 1. 明确目标 2. 优化研发流程 ➤ 2.1 文档先行 ➤ 2.2 可追踪的任务 ➤ 2.3 自动化工作流 3. 注重代码质量 ➤ 3.1 代码门禁&#xff1a;严格要求&#xff0c;提前报错 ➤ 3.2 合并请求&#xff1a;代…

Netty 入门指南

文章目录 前言Netty介绍Netty发展历程Netty核心组件实现HTTP服务器总结 前言 上文《BIO、NIO、IO多路复用模型详细介绍&Java NIO 网络编程》介绍了几种IO模型以及Java NIO&#xff0c;了解了在网络编程时使用哪种模型可以提高系统性能及效率。即使Java NIO可以帮助开发人员…

【java】【maven】【高级】MAVEN聚合继承属性等

目录 1、模块开发与设计 2、聚合 2、继承 3、属性 4、版本管理 5、资源配置 6、多环境配置 7、多环境开发配置 8、跳过测试 9、私服 前言&#xff1a;maven的高级使用包含分模块开发与设计、聚合、继承、属性、版本管理、资源配置、多环境配置、多环境开发配置、跳过…

软件测试缺陷报告

缺陷报告是描述软件缺陷现象和重现步骤地集合。软件缺陷报告Software Bug Report&#xff08;SBR&#xff09;或软件问题报告Software Problem Report&#xff08;SPR&#xff09; 作用&#xff1a;缺陷报告是软件测试人员的工作成果之一&#xff0c;体现软件测试的价值缺陷报…

如何知道企业是否办理过等保备案?哪里可以查询?

对于等保政策细节&#xff0c;大家还存在很多疑问&#xff0c;例如有人在问&#xff0c;如何知道企业是否办理过等保备案&#xff1f;哪里可以查询&#xff1f;今天我们就来简单聊聊&#xff0c;仅供参考。 如何知道企业是否办理过等保备案&#xff1f; 一般企业办理过等保备案…

RISC-V基础指令之shift移动指令slli、srli、srai、sll、srl、sra

RISC-V的shift指令是用于对一个寄存器或一个立即数进行位移运算&#xff0c;并将结果存放在另一个寄存器中的指令。位移运算就是把一个操作数的每一位向左或向右移动一定的位数&#xff0c;得到一个新的位。RISC-V的shift指令有以下几种&#xff1a; slli&#xff1a;左逻辑位…

8.3 作业

整理思维导图 2. 递归实现&#xff0c;输入一个数&#xff0c;输出这个数的每一位 #include <myhead.h> void fun(int t) {if(t 0) return;fun(t/10);printf("%d\n",t%10); } int main(int argc,const char *argv[]) {int t1623809; fun(t);return 0; } 3.递…

虹科方案 | 虹科AR助力汽车产业降本增效!

虹科AR远程解决方案 将高性能的Vuzix AR眼镜与工业远程软件相结合&#xff0c;一线员工使用AR眼镜呼叫专家&#xff0c;由远程专家进行诊断并给出建议&#xff0c;支持一线员工与远程专家实时语音视频交互、AR标注指引、发送文件图片并进行会议录制&#xff0c;帮助一线员工解放…

Linux--对同一个文件分别执行r和w指令,其得到的fd一样吗?

代码&#xff1a; #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>int main() {int fdopen("log.txt",O_WRONLY|O_CREAT|O_TRUNC);printf("fd_w: %d\n",fd);fdopen("log.txt",O_…

关于账号安全的一些思考

0x01-提升账号安全的目的 注册账号是大多数作弊场景的第一步&#xff0c;例如交易场景的生单、营销场景的秒杀活动等都需要账号的参与。其次账号相对于设备、支付卡等能够给唯一标识用户的资源中具备更好的主动权&#xff0c;因此提升账号安全能力是有必要的。 0x02-问题分析…

TikTok数据分析 | 用好超店有数,生意增长快人一步

TikTok在东南亚崛起之快令人叹服。 在东南亚第一大经济体印度尼西亚&#xff0c;超过200万小商家入驻了TikTok的电商平台&#xff1b; TikTok Shop 以6.9亿美元的收入市场份额超越Lazada成为越南第二大电商平台&#xff1b; 2023年泰国TikTok Shop的销售额一路猛涨&#xff…

交互流程图设计软件都有哪些?

交互流程图是设计行业信息流、观点流或组件流的图形代表。但是市场上应该如何选择各种交互流程图软件呢&#xff1f;如何使用高质量的交互流程图软件来绘制高端氛围的高档流程图&#xff1f;今天&#xff0c;小边给您带来了十个超级实用的交互流程图软件&#xff0c;我希望能帮…

8-3作业

思维导图 递归实现&#xff0c;输入一个数&#xff0c;输出这个数的每一位 #!/bin/bashif (( $# < 1 )); thenexit 1 finum$1function print_digits {if (( $1 < 10 )); thenecho $1elseprint_digits $(( $1 / 10 ))echo $(( $1 % 10 ))fi }print_digits $num 递归实现&…

Word导出高清PDF

通过word导出pdf清晰度较高的方法_word如何导出高分辨率pdf_Perishell的博客-CSDN博客通过打印机属性设置&#xff0c;让word打印出比较高清的pdf_word如何导出高分辨率pdfhttps://blog.csdn.net/weixin_45390670/article/details/129228568?ops_request_misc%257B%2522reques…

【Spring】(一)Spring设计核心思想

文章目录 一、初识 Spring1.1 什么是 Spring1.2 什么是 容器1.3 什么是 IoC 二、对 IoC 的深入理解2.1 传统程序开发方式存在的问题2.2 控制反转式程序的开发2.3 对比总结 三、对 Spring IoC 的理解四、DI 的概念4.1 什么是 DI4.2 DI 与 IoC的关系 一、初识 Spring 1.1 什么是…