JVM相关命令手册

排名 命令行命令 / 参数 功能描述 例子
1 java 启动JVM。运行Java应用程序的最基础入口。 java com.example.Main
2 javac 编译源码。将 .java 文件编译为 .class 字节码。 javac User.java
3 jps 查看Java进程。列出本地运行的Java进程及其PID。 jps -lm
4 -Xmx 最大堆内存。限制JVM最大内存占用,防止宿主机OOM。 java -Xmx4g -jar app.jar
5 -Xms 初始堆内存。与 -Xmx 设为同值以避免堆扩容开销。 java -Xms4g -Xmx4g -jar app.jar
6 jcmd 全能诊断工具。官方推荐替代多种单一工具的“瑞士军刀”。 jcmd 12345 Thread.print
7 jstack 生成线程快照。排查死锁、CPU飙高和线程阻塞的利器。 jstack -l 12345 > thread_dump.txt
8 jmap 生成堆快照。分析内存泄漏(常搭配 -dump 使用)。 jmap -dump:format=b,file=heap.hprof 12345
9 -jar 运行可执行JAR。微服务最常见的部署命令格式。 java -jar app.jar
10 -cp / -classpath 指定类路径。指示JVM去哪里加载自定义类和第三方包。 java -cp "lib/*:." com.example.Main
11 -D<name>=<value> 设置系统属性。向程序传递环境变量。 java -Dspring.profiles.active=prod -jar app.jar
12 jstat 监视运行统计。实时查看类加载、内存和GC的变动情况。 jstat -gcutil 12345 1000 5
13 -XX:+HeapDumpOnOutOfMemoryError OOM时导出堆快照。最关键的崩溃现场保护参数。 java -XX:+HeapDumpOnOutOfMemoryError -jar app.jar
14 -XX:HeapDumpPath=<path> 指定堆快照路径。防止OOM生成的dump文件占满系统盘。 java -XX:HeapDumpPath=/var/log/dumps/ -jar app.jar
15 -Xlog:gc* 统一日志配置(JDK 9+)。打印详细的GC日志用于调优。 java -Xlog:gc*=info:file=gc.log:time -jar app.jar
16 -XX:MaxMetaspaceSize 最大元空间大小。防止动态类加载过多导致Metaspace溢出。 java -XX:MaxMetaspaceSize=512m -jar app.jar
17 -Xss 线程栈大小。影响并发线程数及方法调用的深度。 java -Xss512k -jar app.jar
18 jinfo 查看/动态修改配置。打印或在运行时修改部分JVM Flag。 jinfo -flags 12345
19 jar 打包工具。创建、查看或提取 .jar 文件内容。 jar -cvf app.jar -C out/ .
20 -XX:+UseG1GC 启用G1收集器。明确指定使用G1垃圾收集器。 java -XX:+UseG1GC -jar app.jar
21 jfr 飞行记录器CLI(JDK 11+)。解析和操作JFR二进制事件文件。 jfr print --events CPULoad recording.jfr
22 -XX:StartFlightRecording 启动JFR录制。应用启动时直接开启低开销的性能记录。 java -XX:StartFlightRecording=filename=rec.jfr -jar app.jar
23 -XX:MaxDirectMemorySize 最大直接内存。NIO/Netty等使用堆外内存时的关键限制参数。 java -XX:MaxDirectMemorySize=1g -jar app.jar
24 --add-opens 开放模块级反射(JDK 9+)。解决框架使用反射时的强封装拦截。 java --add-opens java.base/java.lang=ALL-UNNAMED ...
25 javap 字节码反编译。查看类的内部结构、常量池和汇编指令。 javap -c -v User.class
26 -XX:+UseZGC 启用ZGC(JDK 11+)。启用现代超低延迟的垃圾收集器。 java -XX:+UseZGC -jar app.jar
27 jconsole JMX可视化监控。图形界面查看内存、线程、类及MBean。 jconsole 12345
28 jdeps 类依赖分析器。分析JAR包依赖关系,助力模块化迁移。 jdeps --jdk-internals app.jar
29 jshell 交互式工具(JDK 9+)。REPL环境,用于快速测试Java代码片段。 jshell
30 -XX:+PrintCommandLineFlags 打印生效的启动参数。检查JVM自动推断或默认开启了哪些参数。 java -XX:+PrintCommandLineFlags -version
31 -XX:MaxGCPauseMillis 最大GC停顿时间。G1GC的核心调优目标,指导GC行为。 java -XX:MaxGCPauseMillis=200 -jar app.jar
32 -XX:MetaspaceSize 初始元空间大小。达到该值会触发首次Full GC,通常与Max同值。 java -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m ...
33 --module-path / -p 模块路径(JDK 9+)。类似于classpath,但专用于Java模块。 java -p mods/ -m com.example.module/Main
34 --module / -m 运行模块(JDK 9+)。指定需要启动的主模块及其主类。 java -m my.module/com.app.Main
35 jlink 自定义JRE构建(JDK 9+)。按需打包仅包含必需模块的精简JRE。 jlink --module-path jmods --add-modules java.base --output myjre
36 jhsdb HotSpot调试器(JDK 9+)。JVM假死时强行挂载分析的核心工具。 jhsdb jstack --pid 12345
37 -showversion 显示版本并继续。在应用日志开头打印JDK版本信息,方便排障。 java -showversion -jar app.jar
38 -XX:+CrashOnOutOfMemoryError OOM时立即崩溃。发生OOM时不再苟活,直接终止进程(利于K8s重启)。 java -XX:+CrashOnOutOfMemoryError -jar app.jar
39 -XX:ErrorFile 指定崩溃日志路径。JVM发生严重错误(如C++层面段错误)时的输出。 java -XX:ErrorFile=/var/log/hs_err_pid%p.log -jar app.jar
40 javadoc 生成API文档。从源码注释中提取并生成HTML格式的开发文档。 javadoc -d doc/ src/**/*.java
41 -XX:+DisableExplicitGC 禁用显式GC。屏蔽代码中的 System.gc() 调用,防止误触发Full GC。 java -XX:+DisableExplicitGC -jar app.jar
42 -XX:SurvivorRatio Eden与Survivor比例。微调年轻代内存布局(通常默认值为8)。 java -XX:SurvivorRatio=8 -jar app.jar
43 -XX:NewRatio 老年代与年轻代比例。控制堆内存中两代的占比(通常默认值为2)。 java -XX:NewRatio=2 -jar app.jar
44 jpackage 原生应用打包(JDK 14+)。将Java应用打包为系统原生安装包(如deb/msi)。 jpackage --name MyApp --input lib --main-jar app.jar
45 jdeprscan 废弃API扫描(JDK 9+)。扫描class文件,检查是否使用了即将废弃的API。 jdeprscan --release 17 app.jar
46 jmod 模块文件工具(JDK 9+)。创建包含原生代码或配置文件的 JMOD 归档。 jmod create --class-path classes mymodule.jmod

posted @ 2026-03-14 18:19  Nickey103  阅读(0)  评论(0)    收藏  举报