JDK经常使用命令行工具(基于JDK10)

虽然我是在jdk10环境下, 可是大致上和jdk8是差很少的. 总共有这么多java

原本想着一口气把全部命令都边学边总结一下的, 结果发现....有些还真的不是很经常使用....或者说我这个水平还接触不到那么多.  因而我就把我能使用到的几个经常使用的总结一下了.  当作是笔记了.python

jshell

jshell启动

jshell退出

jshell使用

就想python同样, 能够每一行代码都返回一个交互结果. 编写短小的程序来运行的时候, 就不用新建项目, 而后新建一个类了...能够直接上核心代码了.算法

还觉得我今后之后再也不须要计算器了

java的jshell计算大数的时候以下:(果真不出所料...失望..)shell

怎么解决呢? 确定是由于默认数字都是Integer型. 只好手动调用BigInteger了.jvm

jcmd

jcmd -h  输出jcmd的帮助信息.

jcmd -l   打印出全部jvm进程信息.

红色圈出来的数字是pid, 也就是进程id函数

jcmd <pid> PerfCounter.print  性能统计信息

jcmd <pid> help    列出可执行的进程操做

jcmd <pid> VM.version   看JVM版本信息

从上面一小节的截图中我们挑一个执行一下. 好比 倒数第二行的VM.version性能

这样就利用了VM.version操做打印出了JDK虚拟机的版本.学习

jcmd <pid> GC.class_histogram  查看系统中类统计信息

(和这个命令是一个效果 jmap -histo <pid>  ).net

jcmd <pid> VM.uptime    查看 JVM 的启动时长

jcmd <pid> Thread.print   查看线程堆栈信息

(等同于这个命令:   jstack <pid> )线程

jcmd <pid> GC.run   对JVM执行System.gc()

jcmd <pid> VM.system_properties  查看JVM的系统配置信息

jcmd <pid> VM.flags  查看JVM的启动参数

jhsdb命令

这个命令是jdk9以后才开始有的

jhsdb hsdb

这命令会打开图形界面. 看起来很高大上的样子...这个还有待学习....看知乎上R大介绍过, 学习学习.

jhsdb jmap --heap --pid <pid>

查看heap的信息,GC使用的算法,heap的配置. (原来的jmap -heap 命令没有了, 被这个命令代替了)

jmap

jmap -dump:live,format=b,file=dump.hprof <pid>  输出堆信息到文件.

live指的是活着的对象, 若是不指定, 那么就会输出全部对象的

jmap -heap <pid>  heap的信息,GC使用的算法,heap的配置

jdk10 里发现不支持-heap了. 被前面的  `jhsdb jmap --heap --pid <pid>`  这个命令替代了.

jmap -finalizerinfo <pid>   打印等待回收的对象信息

输出这个说明没有F-QUEUE队列中并无等待Fializer线程执行finalizer方法的对象

jmap -histo:live <pid>  打印堆的对象统计

(做用和这个命令相同   jcmd <pid> GC.class_histogram   )

 jmap -clstats <pid>  类加载器统计信息

jps

jps 显示jvm进程id及name

jps -q 仅显示进程id

jps -m  显示主函数传入的参数

jps -l  显示全限定名

jps -v  显示jvm参数

jstack 

jstack <pid>  查看线程堆栈信息

(等同于这个命令 jcmd <pid> Thread.print)

jstat 

jstat这里讲的更详细:  https://blog.csdn.net/zhaozheng7758/article/details/8623549

相关文章
相关标签/搜索