我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

在这里插入图片描述

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] []

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

默认情况下,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 的示例输出:

12345678

上述示例表示当前有两个正在运行的 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 argument25678 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.MainClass15678 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=value5678 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是一个非常有用的工具。

来源地址:https://blog.csdn.net/LVSONGTAO1225/article/details/132091019

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

Java可执行命令之jps 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 可选参数:-q3.3 可选参数:-m3.4 可选参数:-l3.5 可选参数:-v3.6 可选参数:-V 4️⃣ 应用场景
2023-08-17

【Java可执行命令】(十二)依赖分析工具jdeps:通过静态分析字节码并提取相关信息来实现依赖分析 ~

Java可执行命令之jdeps 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 可选参数:jdeps -dotoutput 3.3 可选参数:jdeps -s3.4 可选参数:jdeps -v3.5 可选参数:jd
2023-08-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录