jdk 编译、运行、排障组件

    xiaoxiao2026-05-10  6

    1.编译

    javac 编译 .java源文件。 javah 产生相关的 JNI header file

    2.运行

    java 执行 .class、.jar 文件,命令行窗口运行。 javaw 执行 .class、.jar 文件,非命令行窗口运行。

    3.监控排障

    3.1 jps

    //输出java线程的完整启动参数 jps -mlv

    3.2 jstat

    //每隔1000毫秒输出一次gc信息,共输出3次 jstat -gc pid 1000 3

    格式大概见下:

    S0CS1CS0US1UECEUOCOUPCPUYGCYGCTFGCFGCTGCT8640.08640.03506.20.069248.067912.8173036.099390.573856.073850.17527.018145.02012.038survivor_0 capacity (KB)survivor_1 capacitysurvivor_0 usagesurvivor_1 usageeden capacityeden usageold capacityold usagepermanent capacitypermanent usageyoung gc countyong gc time costfull gc countfull gc time costgc time cost //关注内存占用百分比 jstat -gcutil pid

    格式大概见下: 数值表示占比(x%)

    S0S1EOPYGCYGCTFGCFGCTGCT0.0035.4742.6357.4499.997537.025145.02012.045

    3.3 jmap

    //将pid=9406这个java进程的堆,dump到heapDump.hprof文件中。live表示只输出存活对象的信息 jmap -dump:live,format=b,file=heapDump.hprof 9406

    详见 Heap Dump与Analyzer

    3.4 jstack

    jstack pid 可以查看当前时刻所有的线程调用堆栈及线程状态。 jstack pid > threadDump.file 将结果保存到文件中去。

    相关资源:python入门教程(PDF版)
    最新回复(0)