JDK之JPS

关于JDK环境变量,我推荐一下这个

前言

最近开发遇到java -jar xxx.jar 启动的项目没有办法关闭的问题。

window下查找pid有些繁琐,在寻求更好骚操作的途中,我遇到了JDKJPS

jpsjava 命令一样,是在jdk/bin目录下的命令。然后我就去探索了一下。

JPS 简介

JPS 名称:

1
jps - Java Virtual Machine Process Status Tool

命令用法:

1
2
3
4
jps [options] [hostid]
options:命令选项,用来对输出格式进行控制
hostid:指定特定主机,可以是ip地址和域名, 也可以指定具体协议,端口。
[protocol:][[//]hostname][:port][/servername]

功能描述:

  • jps 是用于查看有权访问的 hotspot 虚拟机的进程. 当未指定 hostid 时,默认查看本机 jvm 进程;

  • 查看指定hostid 机器上的 jvm 进程,此时 hostid 所指机器必须开启 jstatd 服务。 jps
    可以列出 jvm 进程 lvmid ,主类类名,main 函数参数, jvm 参数,jar 名称等信息。

  • jps 命令类似与 linuxps 命令,但是它只列出系统中所有的 Java 应用程序。 通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息。

  • 在 linux 中查看 Java 的进程,一般ps -ef | grep java来获取进程ID。只获取 Java 程序的进程,可以直接使用 jps 命令。window
    也是一样的,杀死的命令变为了taskkill -f /pid xxx

命令选项及功能:

  • -q:只输出进程 ID
  • -m:输出传入 main 方法的参数
  • -l:输出完全的包名,应用主类名,jar的完全路径名
  • -v:输出jvm参数
  • -V:输出通过flag文件传递到JVM中的参数

没添加option的时候,默认列出VM标示符号和简单的class或jar名称.如下:

-q :仅仅显示VM 标示,不显示jar,class, main参数等信息.

-m:输出主函数传入的参数. 下的hello 就是在执行程序时从命令行输入的参数

-l: 输出应用程序主类完整package名称或jar完整名称.

-v: 列出jvm参数, -Xms20m -Xmx50m是启动程序指定的jvm参数

-V: 输出通过.hotsportrc或-XX:Flags=指定的jvm参数

-Joption:传递参数到javac 调用的java lancher.

本文地址:https://www.jianshu.com/p/37bfacccf3e2

本文地址: https://github.com/maxzhao-it/blog/post/37965/