Java 开发中常用的命令行工具
以下是 Java 开发中常用的命令行工具及其功能的分类总结:
一、基础编译与运行
-
javac
- 功能:Java 编译器,将
.java
源文件编译为.class
字节码文件。 - 示例:
javac Main.java
- 功能:Java 编译器,将
-
java
- 功能:启动 JVM 并运行主类或可执行 JAR 文件。
- 示例:
java Main # 运行类 java -jar app.jar # 运行 JAR
二、打包与分发
-
jar
- 功能:创建、查看或解压 JAR(Java Archive)文件。
- 示例:
jar cvf app.jar *.class # 打包 jar tf app.jar # 查看内容
-
jlink
(Java 9+)- 功能:生成自定义的轻量级 JRE 运行时镜像,仅包含所需模块。
- 示例:
jlink --module-path mods --add-modules java.base --output myjre
三、调试与监控
-
jdb
- 功能:命令行调试工具,支持断点、单步执行等。
- 示例:
jdb -classpath . Main
-
jps
- 功能:列出当前用户的 Java 进程 ID 和主类名。
- 示例:
jps -l # 显示完整主类名
-
jstack
- 功能:生成线程转储(Thread Dump),用于分析死锁或高 CPU 问题。
- 示例:
jstack <PID> > thread_dump.txt
-
jmap
- 功能:生成堆转储(Heap Dump)或内存使用统计。
- 示例:
jmap -dump:live,format=b,file=heap.hprof <PID>
-
jstat
- 功能:监控 JVM 统计信息(GC、类加载、编译等)。
- 示例:
jstat -gcutil <PID> 1000 # 每秒显示 GC 情况
-
jcmd
(Java 7+)- 功能:向 JVM 发送诊断命令(生成堆转储、查看系统属性等)。
- 示例:
jcmd <PID> VM.uptime # 查看 JVM 运行时间 jcmd <PID> GC.heap_dump heap.hprof
四、性能分析与诊断
-
jinfo
- 功能:查看或动态修改 JVM 参数(如
-Xmx
)。 - 示例:
jinfo <PID> -flags # 显示当前 JVM 参数
- 功能:查看或动态修改 JVM 参数(如
-
jhat
- 功能:分析堆转储文件(Heap Dump),启动 Web 界面浏览对象引用。
- 示例:
jhat heap.hprof
-
jdeps
- 功能:分析类或 JAR 文件的依赖关系(模块化迁移辅助工具)。
- 示例:
jdeps -s app.jar
五、安全与签名
-
keytool
- 功能:管理密钥库(Keystore)和数字证书。
- 示例:
keytool -genkeypair -alias mykey -keystore keystore.jks
-
jarsigner
- 功能:对 JAR 文件进行签名或验证签名。
- 示例:
jarsigner -keystore keystore.jks app.jar mykey
六、其他工具
-
javap
- 功能:反汇编
.class
文件,查看字节码和类结构。 - 示例:
javap -c Main.class # 显示字节码
- 功能:反汇编
-
javadoc
- 功能:从源代码注释生成 HTML 格式的 API 文档。
- 示例:
javadoc -d docs/ src/*.java
-
jwebserver
(Java 18+)- 功能:启动简易静态文件 HTTP 服务器。
- 示例:
jwebserver -p 8000
-
jrunscript
- 功能:执行 JavaScript 等脚本(支持 Nashorn 引擎)。
- 示例:
jrunscript -e "print('Hello')"
总结
这些工具覆盖了 Java 开发的全生命周期,包括编译、打包、调试、性能调优、安全管理等。建议结合具体场景(如内存泄漏分析用 jmap
+ jhat
,线程问题用 jstack
)灵活使用。对于新版 JDK,部分工具(如 javah
)可能已过时,推荐优先使用替代方案(如 javac -h
生成头文件)。
摘抄自网络,便于检索查找。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2024-02-26 springsecurity,使用nginx传traceid实现链路串联提升排查效率
2024-02-26 达梦数据库DM8 - 关于字母大小写、单引号、双引号
2024-02-26 达梦数据库适配问题
2024-02-26 Spring Boot @ServletComponentScan 扫描 @WebServlet、@WebFilter(过滤器)、@WebListener(过滤器),SpringBoot排除数据源配置,配置决定行为
2024-02-26 skywalking源码解析
2024-02-26 MYSQL INNODB数据存储结构
2024-02-26 Elasticsearch学习-索引操作及Mapping映射