名称 | 主要作用 |
---|---|
jps | JVM process Status Tool ,显示指定系统内所有的HotSpot虚拟机进程 |
jstat | JVM Statistics Monitoring Tool, 用于收集HotSpot虚拟机各方面的运行数据 |
jinfo | Configuration Info for Java, 实时查看和调整虚拟机配置信息 |
jmap | Memory Map for Java,生成虚拟机的内存转储快照(heapdump)文件 |
jhat | JVM Heap Dump Browser,用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果 |
jstack | Stack Trace for Java,显示虚拟机的线程快照 |
有一个博主已经写得很清楚了,此命令比较简单。可以直接参考:
- jps: 虚拟机进程状况工具
- jstat: 虚拟机统计信息监视工具 附:使用的jdk版本较早,jdk1.8的输出参数有些变化,新输出参数参考 https://blog.csdn.net/maosijunzi/article/details/46049117
- jinfo: Java配置信息工具 此命令在官方文档中提到This utility is unsupported and might not be available in future releases of the JDK,即在后面的jdk版本中可能不会支持。
- jmap: Java内存映像工具
- jhat: 虚拟机堆转储快照分析工具
- jstack: Java堆栈跟踪工具
在此记录一下windows下jps无法查看正在运行的java进程问题。
我的操作系统是win10,jdk版本1.8,使用命令jps -l
无法查看正在运行的进程:
public class JpsTest {
public static void main(String[] args) throws InterruptedException {
while (true){
Thread.sleep(5000);
new Thread(() -> System.out.println("test")).start();
}
// System.out.println(System.getProperties());
}
}
原因:jps没有读写**hsperfdata_{user_name}**目录的权限。
解决方法:使用上图注释的代码行System.out.println(System.getProperties());
查看java.io.tmpdir
指定的目录,然后修改目录安全属性为当前用户或者所有用户都可以读写。
再使用jps
命令就可以了。