Java常用命令汇总

发布于:2025-07-18 ⋅ 阅读:(20) ⋅ 点赞:(0)

JDK 工具命令

jps(Java Virtual Machine Process Status Tool)

命令示例:jps -l 应用场景:列出当前系统中所有Java进程的PID和主类名,常用于快速定位Java应用的进程ID。

javac(Java Compiler)

命令示例:javac Main.java 应用场景:将Java源文件编译为字节码文件(.class文件),是开发过程中最基础的编译工具。

java(Java Application Launcher)

命令示例:java -jar app.jar 应用场景:运行已编译的Java程序或可执行的JAR包,支持设置JVM参数如内存大小(-Xmx)。

javap(Java Class File Disassembler)

命令示例:javap -c MyClass 应用场景:反编译.class文件,查看字节码指令,用于调试或分析代码逻辑。

jstack(Java Stack Trace)

命令示例:jstack -l <pid> 应用场景:生成Java进程的线程快照,用于分析线程死锁或高CPU占用问题。

jmap(Java Memory Map)

命令示例:jmap -heap <pid> 应用场景:查看Java堆内存使用情况,包括分代内存统计,常用于内存泄漏分析。

jstat(JVM Statistics Monitoring Tool)

命令示例:jstat -gc <pid> 1000 5 应用场景:监控JVM垃圾回收状态,每1秒输出一次,共5次,用于GC性能调优。

jinfo(Java Configuration Info)

命令示例:jinfo -flags <pid> 应用场景:查看或动态修改JVM参数(如-XX:+PrintGCDetails),适用于运行时调试。

jconsole(Java Monitoring and Management Console)

命令示例:jconsole 应用场景:图形化监控JVM内存、线程、类加载等信息,适合直观分析运行时状态。

jcmd(JVM Diagnostic Command Tool)

命令示例:jcmd <pid> VM.flags 应用场景:多功能诊断工具,可获取JVM属性、线程转储、堆转储等。


应用运行命令

运行普通类文件

命令示例:java -cp .:lib/* com.example.Main 应用场景:指定类路径(含依赖库)启动主类,适用于未打包的非模块化项目。

运行可执行JAR

命令示例:java -Xms512m -Xmx1024m -jar app.jar --spring.profiles.active=prod 应用场景:启动Spring Boot等打包应用,设置堆内存大小和激活生产环境配置。

动态附加代理

命令示例:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar app.jar 应用场景:启用远程调试端口(5005),供IDE连接进行调试。

模块化应用运行

命令示例:java --module-path mods -m com.module/com.module.Main 应用场景:运行JPMS模块化应用,需指定模块路径和主模块。

性能分析启动

命令示例:java -XX:+FlightRecorder -XX:StartFlightRecording=duration=60s,filename=myrecording.jfr -jar app.jar 应用场景:启用Java Flight Recorder进行性能分析记录,生成JFR文件供后续分析。

系统属性传递

命令示例:java -Dlog4j.configurationFile=/path/to/log4j2.xml -Duser.timezone=GMT+8 -jar app.jar 应用场景:设置日志配置文件和时区等系统属性。


典型组合场景

  1. 内存泄漏分析

    jmap -dump:live,format=b,file=heap.hprof <pid>
    jstack <pid> > thread_dump.txt
    

    生成堆转储和线程转储,结合MAT工具分析。

  2. GC调优监控

    jstat -gcutil <pid> 1s
    java -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar app.jar
    

    实时监控GC状态并调整G1垃圾回收器参数。


网站公告

今日签到

点亮在社区的每一天
去签到