文章目录

  • 故事发生了
  • java tools简介
    • jaotc
    • jar
    • jarsigner
    • java
    • javac
    • javadoc
    • javap
    • jcmd
    • jconsole
    • jdb
    • jdeprscan
    • jdeps
    • jfr
    • jhsdb
    • jinfo
    • jjs
    • jlink
    • jmap
    • jmod
    • jpackage
    • jps
    • jrunscript
    • jshell
    • jstack
    • jstat
    • jstatd
    • keytool
    • rmic
    • rmid
    • rmiregistry
    • serialver
  • 总结

故事发生了

在还没有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提供的。后面我们会挑其中几个对我们的程序调试和定位问题非常有用的几个工具来讲解。

更多精彩内容且看:

  • 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
  • Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
  • Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
  • java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程

本文作者:flydean程序那些事

本文链接:http://www.flydean.com/jdk14-java-tools/

本文来源:flydean的博客

欢迎关注我的公众号:程序那些事,更多精彩等着您!

JDK14中的java tools简介相关推荐

  1. java中同步和异步简介及应用场景

    转自: java中同步和异步简介及应用场景 同步: 同步指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系. 本意是指某人或某事同时进行:同时产生,比如音画同步.动作同步等. 同步,指对在一 ...

  2. java程序包不存在_第一章 Java语言简介

    Java语言简介 Java之父 James Gosling(詹姆斯·高斯林) 正式诞生时间 1995年,已有二十多年历史 三大方向 JavaSE(桌面版,基础需重点掌握) JavaME(移动版,现在基 ...

  3. 在gradle中构建java项目

    文章目录 简介 构建java项目的两大插件 管理依赖 编译代码 管理resource 打包和发布 生成javadoc 简介 之前的文章我们讲到了gradle的基本使用,使用gradle的最终目的就是为 ...

  4. 小师妹学JVM之:JDK14中JVM的性能优化

    文章目录 简介 String压缩 分层编译(Tiered Compilation) Code Cache分层 新的JIT编译器Graal 前置编译 压缩对象指针 Zero-Based 压缩指针 Esc ...

  5. java agent简介

    java agent简介 主要就是两种,一种的方法是premain,一种是agentmain.这两种的区别是: premain是在jvm启动的时候类加载到虚拟机之前执行的 agentmain是可以在j ...

  6. 在Lotus Domino中使用Java构建应用程序

    对于 IBM Lotus Notes 应用程序开发人员来说,LotusScript 和 LotusScript 类在设计 Notes 应用程序时很有用.LotusScript API 支持以编程方式与 ...

  7. Java EE 简介

    Java EE 简介 Java EE 基本架构 JavaEE 的诞生是为了解决传统 C/S 架构的弊端:客户端臃肿庞大,扩展性差等弊端. JavaEE 将传统的两层结构细分为了四层. 这四层分别是:C ...

  8. (一:NIO系列)JAVA NIO 简介

    出处:JAVA NIO 简介 Java 中 New I/O类库 是由 Java 1.4 引进的异步 IO.由于之前老的I/O类库是阻塞I/O,New I/O类库的目标就是要让Java支持非阻塞I/O, ...

  9. ibm java_IBM i 上Java 虚拟机简介

    Abstract IBM i 上Java 虚拟机简介 Body Java在IT业界有多流行?google上搜索一下java, 结果一目了然(今天早上我搜索到的记录数是840000000条).Java之 ...

最新文章

  1. Android数据存储
  2. 【ARM】Load Store指令
  3. 2899紫金矿业和1862澳华黄金一直都是我的重仓品种啊
  4. 前端埋点的缺点_【埋点学习埋点质量】埋点的框架设计及其准确性
  5. unity中Rotation * Position的意义
  6. 硅谷谍战: Menlo Park某VC是CIA开的, 你们公司实习生可能是科技间谍…
  7. 小程序开发视频教程免费下载
  8. 学习笔记10--自动驾驶汽车软件架构
  9. JAVA个版本新特性
  10. 消防水监测系统解决方案
  11. 修复登录答题微信小程序源码下载
  12. EXCEL表格-数据拆分及分列
  13. 使用 K-means 算法进行客户分类
  14. x264源代码简单分析 编码器主干部分-1
  15. HTTP错误403.9-禁止访问:连接的用户过多 相关
  16. O2O外卖网“开吃吧”投百万年流水过亿
  17. JSOI2014骑士游戏(最短路)
  18. 关于接入新浪微博第三方登录
  19. 6-7 判断满足条件的三位数 (15 分)
  20. 正确看待云服务用户面临的数据安全挑战

热门文章

  1. 朴素容斥原理[ZJOI2016][bzoj4455]小星星
  2. Python_文件_日记管理系统
  3. [Windows驱动开发](四)内存管理
  4. 漫游Kafka实战篇之搭建Kafka运行环境
  5. 2021年,腾讯研发人员增长41%,Go首次超越C++成为最热门语言
  6. 怎么确保网站的可用性
  7. B站Up主上传质量调优实践
  8. LeetCode——树:BST
  9. Facebook、谷歌、微软和亚马逊的网络架构揭秘
  10. MySQL之父直播公开课来了!与腾讯云CDB专家天团联袂分享