Java 开发中常用的命令行工具

以下是 Java 开发中常用的命令行工具及其功能的分类总结:


一、基础编译与运行

  1. javac

    • 功能:Java 编译器,将 .java 源文件编译为 .class 字节码文件。
    • 示例
      javac Main.java
      
  2. java

    • 功能:启动 JVM 并运行主类或可执行 JAR 文件。
    • 示例
      java Main          # 运行类
      java -jar app.jar  # 运行 JAR
      

二、打包与分发

  1. jar

    • 功能:创建、查看或解压 JAR(Java Archive)文件。
    • 示例
      jar cvf app.jar *.class   # 打包
      jar tf app.jar            # 查看内容
      
  2. jlink(Java 9+)

    • 功能:生成自定义的轻量级 JRE 运行时镜像,仅包含所需模块。
    • 示例
      jlink --module-path mods --add-modules java.base --output myjre
      

三、调试与监控

  1. jdb

    • 功能:命令行调试工具,支持断点、单步执行等。
    • 示例
      jdb -classpath . Main
      
  2. jps

    • 功能:列出当前用户的 Java 进程 ID 和主类名。
    • 示例
      jps -l  # 显示完整主类名
      
  3. jstack

    • 功能:生成线程转储(Thread Dump),用于分析死锁或高 CPU 问题。
    • 示例
      jstack <PID> > thread_dump.txt
      
  4. jmap

    • 功能:生成堆转储(Heap Dump)或内存使用统计。
    • 示例
      jmap -dump:live,format=b,file=heap.hprof <PID>
      
  5. jstat

    • 功能:监控 JVM 统计信息(GC、类加载、编译等)。
    • 示例
      jstat -gcutil <PID> 1000  # 每秒显示 GC 情况
      
  6. jcmd(Java 7+)

    • 功能:向 JVM 发送诊断命令(生成堆转储、查看系统属性等)。
    • 示例
      jcmd <PID> VM.uptime      # 查看 JVM 运行时间
      jcmd <PID> GC.heap_dump heap.hprof
      

四、性能分析与诊断

  1. jinfo

    • 功能:查看或动态修改 JVM 参数(如 -Xmx)。
    • 示例
      jinfo <PID> -flags  # 显示当前 JVM 参数
      
  2. jhat

    • 功能:分析堆转储文件(Heap Dump),启动 Web 界面浏览对象引用。
    • 示例
      jhat heap.hprof
      
  3. jdeps

    • 功能:分析类或 JAR 文件的依赖关系(模块化迁移辅助工具)。
    • 示例
      jdeps -s app.jar
      

五、安全与签名

  1. keytool

    • 功能:管理密钥库(Keystore)和数字证书。
    • 示例
      keytool -genkeypair -alias mykey -keystore keystore.jks
      
  2. jarsigner

    • 功能:对 JAR 文件进行签名或验证签名。
    • 示例
      jarsigner -keystore keystore.jks app.jar mykey
      

六、其他工具

  1. javap

    • 功能:反汇编 .class 文件,查看字节码和类结构。
    • 示例
      javap -c Main.class  # 显示字节码
      
  2. javadoc

    • 功能:从源代码注释生成 HTML 格式的 API 文档。
    • 示例
      javadoc -d docs/ src/*.java
      
  3. jwebserver(Java 18+)

    • 功能:启动简易静态文件 HTTP 服务器。
    • 示例
      jwebserver -p 8000
      
  4. jrunscript

    • 功能:执行 JavaScript 等脚本(支持 Nashorn 引擎)。
    • 示例
      jrunscript -e "print('Hello')"
      

总结

这些工具覆盖了 Java 开发的全生命周期,包括编译、打包、调试、性能调优、安全管理等。建议结合具体场景(如内存泄漏分析用 jmap + jhat,线程问题用 jstack)灵活使用。对于新版 JDK,部分工具(如 javah)可能已过时,推荐优先使用替代方案(如 javac -h 生成头文件)。

posted @   CharyGao  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源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映射
点击右上角即可分享
微信分享提示