1、JDK 内置命令行工具
JVM 命令行工具
工具 | 简介 |
---|---|
java | Java 应用的启动程序 |
javac | JDK 内置的编译工具 |
javap | 反编译 class 文件的工具 |
javadoc | 根据 Java 代码和标准注释,自动生成相关的API说明文档 |
javah JNI | 开发时, 根据 java 代码生成需要的 .h文件。 |
extcheck | 检查某个 jar 文件和运行时扩展 jar 有没有版本冲突,很少使用 |
jdb | Java Debugger ; 可以调试本地和远端程序, 属于 JPDA 中的一个 demo 实现, 供 其他调试器参考。开发时很少使用 |
jdeps | 探测 class 或 jar 包需要的依赖 |
jar | 打包工具,可以将文件和目录打包成为 .jar 文件;.jar 文件本质上就是 zip 文件, 只是后缀不同。使用时按顺序对应好选项和参数即可。 |
keytool | 安全证书和密钥的管理工具; (支持生成、导入、导出等操作) |
jarsigner | JAR 文件签名和验证工具 |
policytool | 实际上这是一款图形界面工具, 管理本机的 Java 安全策略 |
常用工具
工具 | 简介 |
---|---|
jps/jinfo | 查看 java 进程 |
jstat | 查看 JVM 内部 gc 相关信息 |
jmap | 查看 heap 或类占用空间统计 |
jstack | 查看线程信息 |
jcmd | 执行 JVM 相关分析命令(整合命令) |
jrunscript/jjs | 执行 js 命令 |
jps 查看java进程
命令行执行: jps
19696 demo-0.0.1-SNAPSHOT.jar
19702 Jps
显示系统运行的Java进程ID
jinfo 查看java进程详细信息
格式:jinfo [pid]。例如: jinfo 19696
查看进程ID为19696的进程信息。
Java System Properties:
#Sat Mar 13 15:37:46 CST 2021
java.runtime.name=Java(TM) SE Runtime Environment
java.protocol.handler.pkgs=org.springframework.boot.loader
sun.boot.library.path=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib
java.vm.version=25.191-b12
gopherProxySet=false
java.vm.vendor=Oracle Corporation
java.vendor.url=http\://java.oracle.com/
path.separator=\:
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
...
展示Java进程的系统属性信息,jdk版本、jvm版本、启动参数等
jstat 查看 JVM 内部 gc 相关信息
格式:jstat -options。例如:jstat -gc 19696 1000 1000
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT CGC CGCT GCT
8704.0 7680.0 0.0 7380.1 133120.0 13662.6 52224.0 5919.9 30976.0 28812.1 4096.0 3654.0 7 0.046 1 0.023 - - 0.069
8704.0 7680.0 0.0 7380.1 133120.0 13662.6 52224.0 5919.9 30976.0 28812.1 4096.0 3654.0 7 0.046 1 0.023 - - 0.069
8704.0 7680.0 0.0 7380.1 133120.0 13662.6 52224.0 5919.9 30976.0 28812.1 4096.0 3654.0 7 0.046 1 0.023 - - 0.069
8704.0 7680.0 0.0 7380.1 133120.0 13662.6 52224.0 5919.9 30976.0 28812.1 4096.0 3654.0 7 0.046 1 0.023 - - 0.069
每列含义的对照表如下:
jstat -options
的其他选项:
-class 类加载(Class loader)信息统计.
-compiler JIT 即时编译器相关的统计信息。
-gc GC 相关的堆内存信息. 用法: jstat -gc -h 10 -t 864 1s 20
-gccapacity 各个内存池分代空间的容量。
-gccause 看上次 GC, 本次 GC(如果正在 GC中)的原因, 其他 输出和 -gcutil 选项一致。
-gcnew 年轻代的统计信息. (New = Young = Eden + S0 + S1) -gcnewcapacity 年轻代空间大小统计.
-gcold 老年代和元数据区的行为统计。
-gcoldcapacity old 空间大小统计.
-gcmetacapacity meta 区大小统计.
-gcutil GC 相关区域的使用率(utilization)统计。 -printcompilation 打印 JVM 编译统计信息。
jmap 查看 heap 或类占用空间统计
jstack 查看线程信息
jcmd 执行 JVM 相关分析命令(整合命令)
可实现上述命令中的所有操作
jrunscript/jjs 执行js
2、 内置图形化工具
jconsole
jvisualvm (JVM 图形化工具)
VisualGC
可在 IDEA 插件中安装