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

news2025/5/15 10:05:47

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.coloradmin.cn/o/2376008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式中深入理解C语言中的指针:类型、区别及应用

在嵌入式开发中,C语言是一种基础且极为重要的编程语言,其中指针作为一个非常强大且灵活的工具,广泛应用于内存管理、动态数据结构的实现以及函数参数的传递等方面。然而,尽管指针的使用极为常见,很多开发者在掌握其基本使用后,往往对指针的深入理解还不够。本文将深入分析…

香港维尔利健康科技集团成都区域运营中心投入使用,西南市场战略全面提速

近日&#xff0c;香港维尔利健康科技集团正式宣布&#xff0c;其位于四川成都的西南区域运营中心已全面建成并投入使用。该中心将集设备调配、技术支持、客户服务、运营管理及数字健康平台维护于一体&#xff0c;成为集团在中国内地智慧医疗战略版图中的关键枢纽&#xff0c;对…

STM32CubeMX HAL库 串口的使用

1.配置 2.开启中断后&#xff0c;生成代码 3.串口的接收 1&#xff09;.开启空闲中断接收 __HAL_UART_ENABLE_IT(huart, UART_IT_IDLE); // 关键步骤&#xff1a;启用空闲中断 2&#xff09;. 启动接收 调用 HAL_UARTEx_ReceiveToIdle_IT 启动异步接收&#xff0c;可以使用…

flutter 视频通话flutter_webrtc

flutter 比较热门的库 flutter_webrtc | Flutter package agora_rtc_engine | Flutter package 我使用的是flutter_webrtc 下面是官方推荐的demo库 GitHub - flutter-webrtc/flutter-webrtc-demo: Demo for flutter-webrtc 其中 https://demo.cloudwebrtc.com:8086/ 已经停…

Babylon.js学习之路《四、Babylon.js 中的相机(Camera)与视角控制》

文章目录 1. 引言&#xff1a;为什么相机是 3D 场景的“眼睛”&#xff1f;1.1 相机的核心作用1.2 常见相机类型概览 2. 相机基础参数解析2.1 通用属性2.2 相机坐标系 3. 详解常用相机类型3.1 自由相机&#xff08;FreeCamera&#xff09;3.2 弧形旋转相机&#xff08;ArcRotat…

【Redis实战篇】秒杀优化

1. 秒杀优化-异步秒杀思路 我们来回顾一下下单流程 当用户发起请求&#xff0c;此时会请求nginx&#xff0c;nginx会访问到tomcat&#xff0c;而tomcat中的程序&#xff0c;会进行串行操作&#xff0c;分成如下几个步骤 1、查询优惠卷 2、判断秒杀库存是否足够 3、查询订单…

Trae IDE:AI深度集成的智能开发环境

&#xff08;以高效人机协作重塑编程体验&#xff09; 概述 Trae IDE&#xff08;发音 /treɪ/&#xff09;是一款深度集成AI能力的现代化开发工具&#xff0c;结合传统IDE的完备功能与前沿AI技术&#xff0c;提供智能问答、代码自动补全、跨文件编程及AI Agent驱动的自动化开…

【大模型】AI智能体Coze 知识库从使用到实战详解

目录 一、前言 二、知识库介绍 2.1 coze 知识库功能介绍 2.2 coze 知识库应用场景 2.3 coze 知识库类型 2.4 coze 知识库权限说明 2.5 coze 知识库与记忆对比 2.6 知识库的使用流程 三、知识库创建与使用 3.1 创建知识库入口 3.2 创建文本知识库 3.2.1 上传文件 3.…

【springcloud学习(dalston.sr1)】服务消费者通过restTemplate来访问服务提供者(含源代码)(五)

该系列项目整体介绍及源代码请参照前面写的一篇文章​​​​​​【springcloud学习(dalston.sr1)】项目整体介绍&#xff08;含源代码&#xff09;&#xff08;一&#xff09; 一般情况下&#xff0c;我们远程调用服务&#xff0c;可以用restTemplate来进行http请求的访问。接…

打破边界,智评未来:AI如何重塑学科交叉融合的评价体系?

目录: 引言:当“学科孤岛”遇上“创新浪潮”透视现状:学科交叉融合的“热望”与“冰壁”他山之石:国际交叉融合模式与评价的“镜与灯”AI赋能:重构学科交叉评价的内涵、要素与方法论 4.1. 基本内涵:从“知识叠加”到“价值涌现”4.2. 评价要素:超越“单点指标”的“网络…

ULVAC C30HMVRT系列冷冻泵和超捕集器压缩机组 安装、操作、维护和故障排除说明 含电路图

ULVAC C30HMVRT系列冷冻泵和超捕集器压缩机组 安装、操作、维护和故障排除说明 含电路图

ORACLE查看归档是否打开

一、使用V$DATABASE视图 SELECT log_mode FROM v$database; 结果说明&#xff1a; ARCHIVELOG - 数据库处于归档模式 NOARCHIVELOG - 数据库处于非归档模式 二、 使用v$instance视图 SELECT archiver FROM v$instance; 结果说明&#xff1a; STARTED - 归档进程已启动(归档模…

鸿蒙5.0项目开发——鸿蒙天气项目的实现(介绍)

【高心星出品】 文章目录 项目简介&#xff1a;项目运行效果图&#xff1a;主要功能&#xff1a;使用的技能点&#xff1a;开发环境&#xff1a; 项目简介&#xff1a; 这是一个基于鸿蒙系统&#xff08;HarmonyOS&#xff09;开发的天气应用&#xff0c;采用 ArkTS 语言开发&…

3Dblox

TSMC 3Dblox Introduction 3Dblox是TSMC定义的一门语言&#xff0c;目标是将物理封装系统分解为模块化的组件&#xff0c;然后进行集成 RDL : 代表interposer的部分 Die的实例化信息 堆叠信息 连接信息 thickness&#xff1a;Die与Die连接Bump的高度 RedHawk-SC-Electrothermal…

Python+大模型 day01

Python基础 计算机系统组成 基础语法 如:student_num 4.标识符要做到见名知意,增强代码的可读性 关键字 系统或者Python定义的,有特殊功能的字符组合 在学习过程中,文件名没有遵循标识符命名规则,是为了按序号编写文件方便查找复习 但是,在开发中,所有的Python文件名称必须…

磁光克尔效应在量子计算中的应用

一、量子自旋态光学操控 1、‌拓扑量子态探测‌ 磁光克尔效应通过检测拓扑磁结构&#xff08;如磁斯格明子&#xff09;的磁光响应&#xff0c;实现对量子材料中非平庸拓扑自旋序的非侵入式表征。例如&#xff0c;二维量子磁体中的“拓扑克尔效应”可通过偏振光旋转角变化揭示…

Vue.js---嵌套的effect与effect栈

4.3嵌套的effect与effect栈 1、嵌套的effect effect是可以发生嵌套的 01 effect(function effectFn1() { 02 effect(function effectFn2() { /* ... */ }) 03 /* ... */ 04 })有这么一段代码&#xff1a; 01 // 原始数据 02 const data { foo: true, bar: true } 03 /…

AAAI-2025 | 电子科大类比推理助力精准识别!SPAR:基于自提示类比推理的无人机目标探测技术

作者&#xff1a; Nianxin Li, Mao Ye, Lihua Zhou, Song Tang, Yan Gan, Zizhuo Liang, Xiatian Zhu 单位&#xff1a;电子科技大学计算机科学与工程学院&#xff0c;上海理工大学机器智能研究所&#xff0c;重庆大学计算机学院&#xff0c;谢菲尔德大学&#xff0c;萨里大学…

速查 Linux 常用指令 II

目录 一、网络管理命令1. 查看和配置网络设备&#xff1a;ifconfig1&#xff09;重启网络命令2&#xff09;重启网卡命令 2. 查看与设置路由&#xff1a;route3. 追踪网络路由&#xff1a;traceroute4. 查看端口信息和使用情况1&#xff09;netstat 命令2&#xff09;lsof 命令…

IIS服务器URL重写配置完整教程

1.下载URL Rewrite Module 2.1 https://www.iis.net/downloads/microsoft/url-rewrite https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_zh-CN.msi 2.安装