解析JDK14中的java tools简介

1.1 JDK 14详细概述

JDK 8 已经在 2014年 3月 18日正式可用,JDK 8作为长期支持(Long-Term-Support)版本,距离现在已经 5年多时间过去了。5年时间里很多企业也都换上了 JDK 8,2018年09月25日作为下一个LTS的JDK版本:JDK 11也应运而生,Oracle表示会对JDK 11提供大力支持、长期支持。之后陆续发布了JDK 12 和JDK 13,JDK 14在 2020年 3月17日正式发布。

1.2 JDK 14总体概览

Oracle在2020年3月17日宣布Java 14(Oracle JDK 14)的全面上市。Java 14通过每六个月发布一次新功能,为企业和开发人员社区提供新的增强功能,继续了Oracle加快创新的承诺。最新的Java开发工具包(JDK)提供了新功能,其中包括两项备受期待的新预览功能–实例匹配的模式匹配(JEP 305)和记录(JEP 359),以及文本块的第二个预览(JEP 368)。此外,最新的Java版本增加了对switch表达式的Java语言支持,公开了用于持续监控JDK Flight Recorder数据的新API,将低延迟Z垃圾收集器的可用性扩展到了macOS和Windows,并在孵化器模块中添加了包装完备的Java应用程序和新的外部内存访问API,以安全,高效地访问Java堆外部的内存。

1.3 JDK 14官方计划

我们可以在openjdk官网中观察到JDK 14发布的详细官方计划和具体的新特性详情,地址如下:

https://openjdk.java.net/projects/jdk/14/

下面看下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一个工具,这里我先简单介绍一下,后续再针对复杂的,特别有用的工具做一个专门的说明。

以下排名仅按字母顺序,不代表任何个人观点

一个java的静态编译器,为编译好的java方法生成native代码。

jar包大家都很熟悉了,使用jar命令可以用来打包和解压jar文件。

jarsigner

jar包打完了,使用jarsigner来对jar包做签名和认证。

使用java可以运行java程序。

javac用来编译java文件,将文本文件编译成二进制的class文件。

javadoc

javadoc可以将代码中写的注释文档生成HTML页面供大家参考。如果你有看过JDK的源代码的话,可以看到源代码里面写了很多注释。大家可以学习一下。因为注释很重要。

java自带的反编译工具,可以将二进制的class文件反编译成为人类可读的代码。

这个反编译工具可能不够IDE自带的反编译工具强大。

这里的d代表的是diagnostic,通过这个命令可以对正在运行的JVM进行调试。

这是一个非常有用的调试工具,我们在后面的文章中会详细讲解。

jconsole

jconsole是一个GUI客户端,可以对现有的java程序进行管理。

他们的连接协议是JMX。不知道为什么国内的公司好像很少用到JMX。um…这个问题等我有时间了研究一下。

Java Debugger (JDB)是一个命令行的debug工具,提供了一系列的debug程序的功能。

jdeprscan

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

jpackage可以用来打包自运行的java程序。

列出机子上面的java进程。

jrunscript

启动一个命令行shell,这个shell支持交互和批处理模式。

一个可互动的java shell环境。

打印java stack信息,主要用在debug中。后面我们会详细讲解。

用于监控JVM的统计信息。

jstatd是一个RMI服务程序,用来远程监控JVM。

keytool

生成和管理密钥,证书的工具。

用来生成远程方法调用的stub和skeleton类。

启动一个守护进程,允许在JVM中注册和实例化对象。

rmiregistry

创建一个RMI对象的注册器。

serialver

为一个或多个class生成serialVersionUID。

以上的31个工具就是JDK14提供的。后面我们会挑其中几个对我们的程序调试和定位问题非常有用的几个工具来讲解。

到此这篇关于解析JDK14中的java tools简介的文章就介绍到这了,更多相关JDK14 java tools简介内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用weixin-java-tools完成微信授权登录、微信支付的示例

    本文为学习记录weixin-java-tools实现公众号微信支付. 码云地址:点我 // 授权登录用到 <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-mp</artifactId> <version>3.1.0</version> </dependency> // 微信支付用到 <depende

  • 深入浅析jcmd:JDK14中的调试神器

    jcmd是JDK自带的调试工具,具有非常强大的功能.jcmd是JDK7中正式引入的,有了jcmd,完全可以替换很多常用的其他工具,比如jstak和jmap. jcmd可以将具体的诊断命令发送给JVM.为了安全起见,使用jcmd的用户必须跟运行的java程序具有同样的用户和用户组. jcmd的调试命令有很多种,每一种调试命令又有自己的参数. 本文将会结合具体的例子详细讲解jcmd的使用. jcmd的语法 jcmd的语法比较简单: jcmd [pid | main-class] command...

  • java实现附件预览(openoffice+swftools+flexpaper)实例

    本文主要介绍了java实现附件预览,需要用到openoffice.SWFTools.FlexPaper,具体步骤如下: 1.概述 主要原理 1.通过第三方工具openoffice,将word.excel.ppt.txt等文件转换为pdf文件 2.通过swfTools将pdf文件转换成swf格式的文件 3.通过FlexPaper文档组件在页面上进行展示 2.安装包下载 1.openoffice是Apache下的一个开放免费的文字处理软件 下载地址:Apache oppenoffice 官网下载 版

  • JAVA 根据数据库表内容生产树结构JSON数据的实例代码

    1.利用场景 组织机构树,通常会有组织机构表,其中有code(代码),pcode(上级代码),name(组织名称)等字段 2.构造数据(以下数据并不是组织机构数据,而纯属本人胡编乱造的数据) List<Tree<Test>> trees = new ArrayList<Tree<Test>>(); tests.add(new Test("0", "", "关于本人")); tests.add(new

  • JDK14的新特性NullPointerExceptions的使用

    JDK 14的新特性:更加好用的NullPointerExceptions 让99%的java程序员都头痛的异常就是NullPointerExceptions了.NullPointerExceptions简称NPE,它是运行时异常的一种,也是java程序中最最容易出现的异常. 出现了NullPointerExceptions之后我们怎么处理呢? 一般情况下就是看日志,看一下到底哪一行出错了.如果这一行只有简单的代码,那么很容易就找到问题所在. 要命的是如果这一行很复杂,那么找出问题就不是那么容易

  • java ant包中的org.apache.tools.zip实现压缩和解压缩实例详解

    java ant包中的org.apache.tools.zip实现压缩和解压缩实例详解 其实apache中的ant包(请自行GOOGLE之ant.jar)中有一个更好的类,已经支持中文了,我们就不重复制造轮子了,拿来用吧, 这里最主要的功能是实现了 可以指定多个文件 到同一个压缩包的功能 用org.apache.tools.zip压缩/解压缩zip文件的例子,用来解决中文乱码问题. 实例代码: import Java.io.BufferedInputStream; import java.io.

  • Java仿文库的基本方法(openoffice+swftools+flexPaper)

    Java仿文库的基本方法 基本步骤: 1.将要展示的office文件 转换成 PDF,  使用工具 openoffice 2.将PDF文件转换成swf ,实用工具swftools 3.使用flexPaper,显示转换后的swf文件. 基础代码:没有任何校验 1.openoffice转换pdf 下载地址:https://www.openoffice.org/zh-cn/ 实用工具:  jodconverter-2.2.2   引入所需jar,直接将所有jar都扔进来了 首先.下载openOffic

  • 解析JDK14中的java tools简介

    1.1 JDK 14详细概述 JDK 8 已经在 2014年 3月 18日正式可用,JDK 8作为长期支持(Long-Term-Support)版本,距离现在已经 5年多时间过去了.5年时间里很多企业也都换上了 JDK 8,2018年09月25日作为下一个LTS的JDK版本:JDK 11也应运而生,Oracle表示会对JDK 11提供大力支持.长期支持.之后陆续发布了JDK 12 和JDK 13,JDK 14在 2020年 3月17日正式发布. 1.2 JDK 14总体概览 Oracle在202

  • Java中StringTokenizer的用法简介汇总

    目录 StringTokenizer的用法 StringTokenizer 构造方法: StringTokenizer 常用方法: 补充:下面在介绍下StringTokenizer的使用 下文笔者讲述StringTokenizer对象的简介说明,如下所示 StringTokenizer的简介 Java StringTokenizer属于java.util包 用于分隔字符串 StringTokenizer构造方法 StringTokenizer(String str): 构造一个用来解析 str

  • Java中Object toString方法简介_动力节点Java学院整理

    一.Object类介绍  Object类在Java里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object.所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗.所有的类,不管是谁,都是从它继承下来的. 二.toString方法介绍  一个字符串和另外一种类型连接

  • Android中执行java命令的方法及java代码执行并解析shell命令

    android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析. android的程序基于java开发,当我们接上调试器,执行adb shell,就可以执行linux命令,但是却并不能执行java命令. 那么在android的shell中是否就不能执行java程序了呢. 答案是否定的.我们可以通过app_process来执行java程序. 写一个hello world吧,就是刚开始学java的时候 写得那个hello world,这次要在android上运行. 用记事本新建

  • 利用Java实现解析网页中的内容

    目录 一.题目描述 二.解题思路 三.代码详解 一.题目描述 题目实现:做一个解析指定网址的网页内容小应用. 二.解题思路 创建一个类:InternetContentFrame,继承JFrame窗体类. 定义一个getURLCollection()方法:用于解析网页内容 使用URLConnection类的getInputStream()方法 获取网页资源的输入流对象. 三.代码详解 InternetContentFrame package com.xiaoxuzhu; import java.a

  • Java中的Web MVC简介_动力节点Java学院整理

    Web开发中的请求-响应模型: 在Web世界里,具体步骤如下: 1.Web浏览器(如IE)发起请求. 2.Web服务器(如Tomcat)接收请求,处理请求(比如用户新增,则将把用户保存一下),最后产生响应(一般为html). 3.web服务器处理完成后,返回内容给web客户端(一般就是我们的浏览器),客户端对接收的内容进行处理(如web浏览器将会对接收到的html内容进行渲染以展示给客户). 因此,在Web世界里: 都是Web客户端发起请求,Web服务器接收.处理并产生响应. 一般Web服务器是

  • Java Lombok简介、使用、工作原理、优缺点

    简介 官方介绍 Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, automate your lo

  • Golang中的godoc使用简介(推荐)

    目录 go doc简介 Golang中的godoc使用简介 go doc约定规则 使用命令 go doc简介 Godoc是go语言的文档化工具,类似于文档化工具godoc,类似于Python的Docstring和Java的JavadocGodoc通过解析包含注释的Go代码来生成HTML或文本类型的文档. Golang中的godoc使用简介 学习go语法的同时为了方便查看对应的文档,不同的Go版本会有一些改动,所以,使用本地Go源码生成的文档显然更精确. go在1.13之前是自带godoc的,之后

  • 解析SpringCould中的Hystrix

    一.简介 源码地址:https://gitee.com/xiaocheng0902/my-cloud.git 1,定义 Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时.异常等.Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性. "断路器"本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个符合预期的.可处理的备

随机推荐