JDK之JPS
关于JDK环境变量,我推荐一下这个
前言
最近开发遇到java -jar xxx.jar
启动的项目没有办法关闭的问题。
window下查找pid
有些繁琐,在寻求更好骚操作的途中,我遇到了JDK
的JPS
。
jps
与 java
命令一样,是在jdk/bin
目录下的命令。然后我就去探索了一下。
JPS 简介
JPS 名称:
jps - Java Virtual Machine Process Status Tool
命令用法:
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
命令类似与linux
的ps
命令,但是它只列出系统中所有的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=<filename>指定的jvm参数
-Joption:传递参数到javac 调用的java lancher.