jdk 编译、运行、排障组件

来源:互联网 发布:mac ftp 上传文件 编辑:程序博客网 时间:2024/06/07 05:29

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

格式大概见下:

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 8640.0 8640.0 3506.2 0.0 69248.0 67912.8 173036.0 99390.5 73856.0 73850.1 752 7.018 14 5.020 12.038 survivor_0 capacity (KB) survivor_1 capacity survivor_0 usage survivor_1 usage eden capacity eden usage old capacity old usage permanent capacity permanent usage young gc count yong gc time cost full gc count full gc time cost gc time cost
//关注内存占用百分比jstat -gcutil pid 

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

S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 35.47 42.63 57.44 99.99 753 7.025 14 5.020 12.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 将结果保存到文件中去。

0 0