JDK14中的java tools简介
故事发生了
在还没有IDE的时代,高手们还是通过记事本来编程。那时候能够写程序的都是牛人。能把程序写得好的更是牛人中的牛人。
秃头大叔的程序员形象就是在那个时候建立起来的。
还记得十几年前的那一个春天,微风不动,太阳都羞红了脸。因为那时候的我还在一个javac,一个java的编译,运行着java程序。
虽然效率低下,但是看着我跑起来的一个又一个hello world,心里充满了欢喜。
惊喜过后便是失落,java实在太难用了太复杂了,我还是回去写C语言吧。
直到有一天,有人向我推荐了eclipse,它就像是一道闪电照亮了我前进的方向。从此什么javac,java都见鬼去吧,我只要eclipse。
很多年之后,我从eclipse转向了IDEA,开发工具越来越趁手,然后我已经差不多快忘记了java原来还提供了一系列的java tools供我们使用。
都说要勿忘初心,于是借着JDK14的发布,我又一次回顾了java tools提供的工具,居然有了惊喜的发现。
java tools简介
JDK14中提供了多达31中工具,惭愧的是,第一次看到它们我只认识其中的部分。士知耻而后勇,于是我奋发图强,终于在今天将它们全都认识了。
31一个工具,这里我先简单介绍一下,后续再针对复杂的,特别有用的工具做一个专门的说明。
以下排名仅按字母顺序,不代表任何个人观点
jaotc
一个java的静态编译器,为编译好的java方法生成native代码。
jar
jar包大家都很熟悉了,使用jar命令可以用来打包和解压jar文件。
jarsigner
jar包打完了,使用jarsigner来对jar包做签名和认证。
java
使用java可以运行java程序。
javac
javac用来编译java文件,将文本文件编译成二进制的class文件。
javadoc
javadoc可以将代码中写的注释文档生成HTML页面供大家参考。如果你有看过JDK的源代码的话,可以看到源代码里面写了很多注释。大家可以学习一下。因为注释很重要。
javap
java自带的反编译工具,可以将二进制的class文件反编译成为人类可读的代码。
这个反编译工具可能不够IDE自带的反编译工具强大。
jcmd
这里的d代表的是diagnostic,通过这个命令可以对正在运行的JVM进行调试。
这是一个非常有用的调试工具,我们在后面的文章中会详细讲解。
jconsole
jconsole是一个GUI客户端,可以对现有的java程序进行管理。
他们的连接协议是JMX。不知道为什么国内的公司好像很少用到JMX。um...这个问题等我有时间了研究一下。
jdb
Java Debugger (JDB)是一个命令行的debug工具,提供了一系列的debug程序的功能。
jdeprscan
jdeprscan是一个分析工具,用来扫描jar或者class文件中的deprecated API。
jdeps
jdeps是一个java class依赖的分析工具。
jfr
jfr是Java Flight Recorder的缩写,jfr是java应用程序的分析工具。它可以收集JVM在运行期间所产生的一系列事件,并生成文件和分析。
后面我们会用一篇文章详细讲解JFR。
jhsdb
jhsdb是一个分析工具,可以分析正在运行的java程序中,也可以分析coredump。
jinfo
jinfo为特定的java进程生成运行时的java配置信息。
jjs
jjs用来运行Nashorn engine。
jlink
从JDK9之后,java已经模块化了。jlink可以将模块和他们的依赖组织起来,生成一个自定义的运行时环境。
jmap
jmap可以打印出某个java进程的堆信息。我们会在后面的文章中详细讲解。
jmod
jmod用来创建和解析JMOD文件。
jpackage
jpackage可以用来打包自运行的java程序。
jps
列出机子上面的java进程。
jrunscript
启动一个命令行shell,这个shell支持交互和批处理模式。
jshell
一个可互动的java shell环境。
jstack
打印java stack信息,主要用在debug中。后面我们会详细讲解。
jstat
用于监控JVM的统计信息。
jstatd
jstatd是一个RMI服务程序,用来远程监控JVM。
keytool
生成和管理密钥,证书的工具。
rmic
用来生成远程方法调用的stub和skeleton类。
rmid
启动一个守护进程,允许在JVM中注册和实例化对象。
rmiregistry
创建一个RMI对象的注册器。
serialver
为一个或多个class生成serialVersionUID。
总结
以上的31个工具就是JDK14提供的。后面我们会挑其中几个对我们的程序调试和定位问题非常有用的几个工具来讲解。
本文作者:flydean程序那些事
本文链接:http://www.flydean.com/jdk14-java-tools/
本文来源:flydean的博客
欢迎关注我的公众号:程序那些事,更多精彩等着您!
JDK14中的java tools简介的更多相关文章
- 第63节:Java中的Spring MVC简介笔记
前言 感谢! 承蒙关照~ Java中的Spring MVC简介笔记 MVC简介 Spring MVC 基本概念 Spring MVC 项目搭建 maven 使用Spring MVC进行开发 实现数据绑 ...
- 小师妹学JVM之:JDK14中JVM的性能优化
目录 简介 String压缩 分层编译(Tiered Compilation) Code Cache分层 新的JIT编译器Graal 前置编译 压缩对象指针 Zero-Based 压缩指针 Escap ...
- 在gradle中构建java项目
目录 简介 构建java项目的两大插件 管理依赖 编译代码 管理resource 打包和发布 生成javadoc 简介 之前的文章我们讲到了gradle的基本使用,使用gradle的最终目的就是为了构 ...
- 在CentOS 7/6.5/6.4 中安装Java JDK 8(转载)
转载在CentOS 7/6.5/6.4 中安装Java JDK 8 首先,在你的服务器上运行一下更新. yum update 然后,在您的系统上搜索,任何版本的已安装的JDK组件. rpm -qa | ...
- Java异常(一) Java异常简介及其架构
概要 本章对Java中的异常进行介绍.内容包括:Java异常简介Java异常框架 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544168.html ...
- 一、Android NDK编程预备之Java jni简介
转自: http://www.eoeandroid.com/thread-264384-1-1.html 游戏开发 视频教程 博客 淘帖 论坛›eoe·Android应用开发区›Androi ...
- Nashorn 在JDK 8中融合Java与JavaScript之力
从JDK 6开始,Java就已经捆绑了JavaScript引擎,该引擎基于Mozilla的Rhino.该特性允许开发人员将JavaScript代码嵌入到Java中,甚至从嵌入的JavaScript中调 ...
- Java RMI 简介及其优劣势总结
今天,帮别人看UDAS配置问题时,看到采用的是RMI方式的调用,如:rmi://10.20.134.140:2299/DataServer,而且这个端口是被直接硬编码在UDAS的代码中的.既然看到了, ...
- Nashorn——在JDK 8中融合Java与JavaScript之力
从JDK 6开始,Java就已经捆绑了JavaScript引擎,该引擎基于Mozilla的Rhino.该特性允许开发人员将JavaScript代码嵌入到Java中,甚至从嵌入的JavaScript ...
- Java多线程简介
Java多线程简介 Java中内置了对多线程的支持,让多线程的开发方便很多,但同时也带来了另外的复杂,线程间的交互以及很多的不确定性让多线程又显得很复杂.在此只是针对Java中多线程的基础做些说明,有 ...
随机推荐
- 项目实战:Qt + 树莓派3B+ 智能笔筒系统
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术.树莓派.三维.OpenCV.OpenGL.ffmpeg.OSG.单片机.软硬结合等等)持续更新中-(点击传送门) 需求 1.基于树莓 ...
- 用Visual Studio把代码放到GitLab
1.点"Git更改" 2.点"创建Git仓库--": 3.点"现有远程",再输入"远程URL": 4.在出现的警告框里选 ...
- 面试官上来就让手撕HashMap的7种遍历方式,当场愣住,最后只写出了3种
写在开头 今天有个小伙伴私信诉苦,说面试官上来就让他手撕HashMap的7种遍历方式,最终只写出3种常用的,怀疑面试官是在故意***难.这个问题大家怎么看? 反正我个人感觉这肯定不是***难,&quo ...
- Java 多线程---线程优先级
Java 实例 - 线程优先级设置 以下实例演示了如何通过setPriority() 方法来设置线程的优先级: 1 SimplePriorities.java 文件 2 public class Si ...
- Java 封装性的四种权限测试 + 总结
* 总结封装性:Java提供了4中权限修饰符来修饰类及类的内部结构,体现类及类的内部结构再被调用时的可见性的大小 1 package com.bytezero.circle; 2 3 publi ...
- zookeeper源码(10)node增删改查及监听
本文将从leader处理器入手,详细分析node的增删改查流程及监听器原理. 回顾数据读写流程 leader ZookeeperServer.processPacket封装Request并提交给业务处 ...
- 使用PdfSharp从模板生成Pdf文件
最近在做一个生成文档的需求.通过先制作一个包含各字段占位符的文档模板,导入这个模板并填写内容替换掉占位符,再输出成最终文件. 由于版式固定,安全性更好,业务上常用Pdf作为最终标准化的格式, 在. ...
- Zabbix“专家坐诊”第182期问答汇总
问题一: Q:像烽火.浪潮这种没有ilo的设备怎么监控他们的硬件状态呢? A:如果没有ilo,可以使用其他硬件监控软件,例如HP Insight Manager.IBM Director.Dell O ...
- 摆脱鼠标系列 - 百度搜索 - 火柴 - 快捷键 Ctrl两次
摆脱鼠标系列 - 百度搜索 - 火柴 - 快捷键 Ctrl两次 有两款软件 utools 和 火柴,试用后觉得火柴符合试用功能 这里只用网络搜索 其他功能均不用 搜索用双核浏览器 因为用的老的chro ...
- Rancher 2.5.x 证书过期报错 x509: certificate has expired or is not yet valid 解决方案
Rancher 的证书过期会出现什么状况?不可以继续通过Rancher UI访问你的集群 查看Rancher Server日志报错:x509: certificate has expired or i ...