当前位置: 首页 > news >正文

JDK 命令行工具大全与学习方法总结 —— 从帮助文档到高效实践

JDK 命令行工具大全与学习方法总结 —— 从帮助文档到高效实践


Java开发与运维过程中,JDK自带的命令行工具是定位问题、性能调优、编译调试的基石。本文全面梳理JDK常用命令工具、帮助文档的获取方式,并总结类似Linux命令行的学习方法,助你系统掌握并高效应用。


一、JDK 命令工具全家桶

JDK自带的命令工具覆盖编译、打包、监控、调试、性能分析等全生命周期。常见命令如下:

工具主要用途典型命令简要说明
java启动Java应用java -version启动参数、版本信息
javacJava源码编译javac Hello.java生成class文件
jar打包/解包jar文件jar cf app.jar *.class类似zip命令
javadoc生成API文档javadoc MyClass.java生成html文档
javap反编译class文件javap -c MyClass查看字节码指令
jdbJava调试器jdb Hello命令行调试
jps列出本机Java进程jps -l查看pid和主类
jstack导出线程栈jstack 死锁、卡顿排查
jmap堆转储、内存分析jmap -histo 内存泄漏分析
jstatJVM运行/GC统计jstat -gc 监控GC/内存分布
jinfo查询/调整JVM参数jinfo -flags JVM参数核查
jcmd现代诊断瑞士军刀jcmd help动态诊断,功能覆盖jmap/jstack/jinfo等
jshellJava交互式命令行jshell类似Python REPL
jlink模块化自定义JREjlink --module-path …JDK9+,生成精简JRE
jdeps依赖分析工具jdeps MyApp.jar分析类/模块依赖
jstatdJVM远程监控守护进程jstatd支持jstat/jconsole远程监控
jfr/jmcJava Flight Recorder/Java Mission Controljfr start …, jmc运行时性能剖析,JDK11+
jhat (过时)堆分析Web工具jhat heap.hprof已被MAT/VisualVM替代

提示:JDK bin 目录下还有许多命令,可用 ls $JAVA_HOME/bin 查看。


二、如何查看JDK命令帮助文档

1. 命令行自带帮助参数

  • 通用格式:命令 -h命令 --help
  • 示例:
    javac --help
    jmap -h
    java -help
    jar --help
    jcmd help
    

2. 查看命令详细用法

  • 许多命令支持 -help-?
    jstack -help
    jstat -help
    
  • 某些命令(如jcmd)需要指定pid或help关键字
    jcmd <pid> help
    

3. 在线官方文档

  • Oracle官方文档:https://docs.oracle.com/en/java/javase/
  • 选择对应JDK版本,进入“Tools Reference”或“Command-Line Tools”部分。

4. 查看man手册(部分Linux发行版)

  • 安装openjdk时,部分命令支持man页:
    man javac
    man java
    
  • 若无man,建议用命令自带的--help

三、类似Linux命令的学习方法

1. 掌握命令基本结构与选项

  • 学习每个命令的核心参数(如jps -l、jstack 、jmap -histo )。
  • 结合实际排查任务,记住常用组合(如:jps找pid,jstack导线程,jmap导堆)。

2. 多用帮助文档/示例参数

  • 遇到不熟悉的命令或参数,第一时间 --help-h 查文档。
  • 推荐将常用命令和参数记录在笔记或速查表。

3. 场景化练习——实战驱动记忆

  • 编译调试:写个HelloWorld.java,练习javacjavajarjavapjavadoc
  • 性能诊断:写个死循环/内存泄漏demo,练习jpsjstackjmapjstatjcmd
  • 依赖分析:用jdeps分析jar包依赖。
  • 交互试验:用jshell练习Java语法片段。

4. 结合脚本/自动化

  • 类似Linux shell,将JDK命令组合成脚本批量采集信息。
    #!/bin/bash
    pid=$(jps | grep MyApp | awk '{print $1}')
    jstack $pid > threads.txt
    jmap -histo $pid > histo.txt
    

5. 善用官方文档与社区资源

  • Oracle/AdoptOpenJDK官方文档。
  • StackOverflow、CSDN、博客园等社区经验。
  • 关注新JDK版本命令变更(如jcmd、jfr等新工具)。

四、JDK命令学习与排查流程建议

  1. 定位进程jps -lps -ef | grep java
  2. 基础信息jinfo -flags <pid>java -version
  3. 线程问题jstack <pid>jcmd <pid> Thread.print
  4. 内存问题jmap -histo <pid>jmap -dump:format=b,file=heap.hprof <pid>jcmd <pid> GC.class_histogram
  5. GC/内存监控jstat -gcutil <pid> 1000 5
  6. 依赖/模块分析jdeps MyApp.jar
  7. 性能剖析jfr(JDK11+)、jmc(Java Mission Control)

五、附:JDK命令速查表

场景命令示例说明
查看Java版本java -versionJDK版本
编译源码javac Hello.java生成class
打包jarjar cf app.jar *.classjar包操作
反编译字节码javap -c Hello查看字节码
生成文档javadoc Hello.java生成API文档
进程列表jps -l查找目标进程PID
线程快照jstack 线程分析
堆对象分布jmap -histo 内存泄漏排查
堆dumpjmap -dump:format=b,file=heap.hprof 堆分析
JVM参数jinfo -flags 参数核查
依赖分析jdeps app.jar模块/包依赖
动态诊断jcmd help现代JVM诊断工具
交互实验jshellJava REPL

六、总结与建议

  • JDK命令行工具是Java开发/运维必备技能,类似Linux命令行,建议多用help参数、结合实际问题练习
  • 推荐每次遇到新问题或新命令,先查help,后查官方文档,再实践,逐步形成自己的速查资料。
  • 关注JDK版本更新,及时学习新工具(如jcmd、jfr、jmc),提升排查效率。
  • 善用脚本自动化、社区经验,积累实战案例。
  • 最后,多动手、多总结、多归纳,命令才会真正变成你的工具箱!

建议收藏本博客,遇到JDK命令相关问题时按需查阅,高效定位与解决问题!

http://www.xdnf.cn/news/443989.html

相关文章:

  • 3Dmax传递顶点法线(顶点法线方向传递)教程
  • Java 泛型
  • Ubuntu 系统默认已安装 python,此处只需添加一个超链接即可
  • Windows11 Game Bar
  • 深度解析网闸策略:构建坚固的网络安全防线
  • 【嵌入模型与向量数据库】
  • QT+opencv实现卡尺工具找圆、拟合圆
  • 【LeetCode 热题 100】全排列 / 子集 / 组合总和 / 分割回文串 / N 皇后
  • Manus逆向工程:AI智能体的“思考”与“行动”
  • iOS审核问题及回复
  • 【计算机视觉】OpenCV实战项目:Face-Mask-Detection 项目深度解析:基于深度学习的口罩检测系统
  • 鸿蒙OSUniApp 开发实时聊天页面的最佳实践与实现#三方框架 #Uniapp
  • mysql数据库配置
  • NSSCTF [HNCTF 2022 WEEK4]
  • C盘清理(简单易懂)
  • 行政区划XML接口数据文件
  • 【Spark分析HBase数据】Spark读取并分析HBase数据
  • 高等数学第七章---微分方程(§7.1-§7.3微分方程概念、一阶微分方程、一阶微分线性方程)
  • Selenium-Java版(操作元素)
  • Android App View——团结引擎车机版实现安卓应用原生嵌入 3D 开发场景
  • 智能体制作学习笔记2——情感客服
  • openfeign 拦截器实现微服务上下文打通
  • 【Three.js基础学习】36.particles-morphing-shader
  • React 简介:核心概念、组件化架构与声明式编程
  • De-biased Attention Supervision for Text Classifcation with Causality
  • Beats
  • AI规则引擎:解锁SQL数据分析新姿势
  • rhce 9 考题与解析笔记
  • 16 - VDMA之视频转发实验
  • 用HBuilder运行小程序到微信开发者工具