在尚未IDE的时代,高手们仍是经过记事原本编程。那时候可以写程序的都是牛人。能把程序写得好的更是牛人中的牛人。java
秃头大叔的程序员形象就是在那个时候创建起来的。程序员
还记得十几年前的那一个春天,微风不动,太阳都羞红了脸。由于那时候的我还在一个javac,一个java的编译,运行着java程序。shell
虽然效率低下,可是看着我跑起来的一个又一个hello world,内心充满了欢喜。编程
惊喜事后即是失落,java实在太难用了太复杂了,我仍是回去写C语言吧。eclipse
直到有一天,有人向我推荐了eclipse,它就像是一道闪电照亮了我前进的方向。今后什么javac,java都见鬼去吧,我只要eclipse。模块化
不少年以后,我从eclipse转向了IDEA,开发工具愈来愈趁手,而后我已经差很少快忘记了java原来还提供了一系列的java tools供咱们使用。工具
都说要勿忘初心,因而借着JDK14的发布,我又一次回顾了java tools提供的工具,竟然有了惊喜的发现。学习
JDK14中提供了多达31中工具,惭愧的是,第一次看到它们我只认识其中的部分。士知耻然后勇,因而我奋发图强,终于在今天将它们全都认识了。开发工具
31一个工具,这里我先简单介绍一下,后续再针对复杂的,特别有用的工具作一个专门的说明。命令行
如下排名仅按字母顺序,不表明任何我的观点
一个java的静态编译器,为编译好的java方法生成native代码。
jar包你们都很熟悉了,使用jar命令能够用来打包和解压jar文件。
jar包打完了,使用jarsigner来对jar包作签名和认证。
使用java能够运行java程序。
javac用来编译java文件,将文本文件编译成二进制的class文件。
javadoc能够将代码中写的注释文档生成HTML页面供你们参考。若是你有看过JDK的源代码的话,能够看到源代码里面写了不少注释。你们能够学习一下。由于注释很重要。
java自带的反编译工具,能够将二进制的class文件反编译成为人类可读的代码。
这个反编译工具可能不够IDE自带的反编译工具强大。
这里的d表明的是diagnostic,经过这个命令能够对正在运行的JVM进行调试。
这是一个很是有用的调试工具,咱们在后面的文章中会详细讲解。
jconsole是一个GUI客户端,能够对现有的java程序进行管理。
他们的链接协议是JMX。不知道为何国内的公司好像不多用到JMX。um...这个问题等我有时间了研究一下。
Java Debugger (JDB)是一个命令行的debug工具,提供了一系列的debug程序的功能。
jdeprscan是一个分析工具,用来扫描jar或者class文件中的deprecated API。
jdeps是一个java class依赖的分析工具。
jfr是Java Flight Recorder的缩写,jfr是java应用程序的分析工具。它能够收集JVM在运行期间所产生的一系列事件,并生成文件和分析。
后面咱们会用一篇文章详细讲解JFR。
jhsdb是一个分析工具,能够分析正在运行的java程序中,也能够分析coredump。
jinfo为特定的java进程生成运行时的java配置信息。
jjs用来运行Nashorn engine。
从JDK9以后,java已经模块化了。jlink能够将模块和他们的依赖组织起来,生成一个自定义的运行时环境。
jmap能够打印出某个java进程的堆信息。咱们会在后面的文章中详细讲解。
jmod用来建立和解析JMOD文件。
jpackage能够用来打包自运行的java程序。
列出机子上面的java进程。
启动一个命令行shell,这个shell支持交互和批处理模式。
一个可互动的java shell环境。
打印java stack信息,主要用在debug中。后面咱们会详细讲解。
用于监控JVM的统计信息。
jstatd是一个RMI服务程序,用来远程监控JVM。
生成和管理密钥,证书的工具。
用来生成远程方法调用的stub和skeleton类。
启动一个守护进程,容许在JVM中注册和实例化对象。
建立一个RMI对象的注册器。
为一个或多个class生成serialVersionUID。
以上的31个工具就是JDK14提供的。后面咱们会挑其中几个对咱们的程序调试和定位问题很是有用的几个工具来说解。
本文做者:flydean程序那些事本文连接:http://www.flydean.com/jdk14-java-tools/
本文来源:flydean的博客
欢迎关注个人公众号:程序那些事,更多精彩等着您!