常用的jdk命令
- jar
- jarsigner 签名工具,可对未签名的apk进行签名
- java
- javac 编译工具
- javadoc 生成doc文档工具
- javafxpackager 打包工具,可以生成.exe文件
- javap 查看.class文件的字节码
- javapackager jdk1.7后自带的一个打包工具,可以生成本地exe安装包
- jcmd 打印一个 Java 进程的类,线程以及虚拟机信息。适合用在脚本中。使用 jcmd - h 来查看使用方法。
- jconsole 提供 JVM 活动的图形化展示,包括线程使用,类使用以及垃圾回收(GC)信息
- jdb 调试工具,比较牛逼
- jdeps 包依赖分析工具
- jhat 帮助分析内存堆存储
- jinfo 访问 JVM 系统属性,同时可以动态修改这些属性。
- jmap 提供 JVM 内存使用信息,适用于脚本中。
- jmc 性能监控工具
- jps 显示当前所有java进程pid的命令
- jstack 提供 Java 进程内的线程堆栈信息。
- jstat 提供 Java 垃圾回收以及类加载信息。
- jstatd 一个rmi的server应用,用于监控jvm的创建和结束,并且提供接口让监控工具(如visualvm)可以远程连接到本机的jvms
- jvisualvm 监控 JVM 的可视化工具,剖析运行中的应用程序,分析 JVM 堆存储。
经常用到的
javac xxx.java
javap xxx.class
jstack
显示线程堆栈信息
主要目的是用于定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致长时间等待。
jstat
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
jstat -gcutil pid 2000 10
interval 毫秒
- jstat –class : 显示加载class的数量,及所占空间等信息
- jstat -compiler 显示VM实时编译的数量等信息
- jstat -gc : 可以显示gc的信息,查看gc的次数,及时间
- jstat -gccapacity :可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小
- jstat -gcutil :统计gc信息
- jstat -gcnew :年轻代对象的信息
- jstat -gcnewcapacity: 年轻代对象的信息及其占用量
- jstat -gcold :old代对象的信息
- jstat -gcoldcapacity : old代对象的信息及其占用量
- jstat -gcpermcapacity: perm对象的信息及其占用量
- jstat -printcompilation :当前VM执行的信息