JDK14中的java tools简介

简介: 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。



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

相关文章
|
5天前
|
存储 缓存 算法
JVM简介—1.Java内存区域
本文详细介绍了Java虚拟机运行时数据区的各个方面,包括其定义、类型(如程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区和直接内存)及其作用。文中还探讨了各版本内存区域的变化、直接内存的使用、从线程角度分析Java内存区域、堆与栈的区别、对象创建步骤、对象内存布局及访问定位,并通过实例说明了常见内存溢出问题的原因和表现形式。这些内容帮助开发者深入理解Java内存管理机制,优化应用程序性能并解决潜在的内存问题。
JVM简介—1.Java内存区域
|
10天前
|
Java Linux API
课时3:Java简介(Java主要特点)
本文介绍了Java的主要特点及其运行机制。Java结合了编译型和解释型语言的优点,通过Java虚拟机(JVM)实现跨平台移植,简化了不同操作系统间的开发流程。Java的特点包括可移植性、简单易用、支持多线程编程、自动垃圾收集和面向对象编程。随着硬件技术的发展,Java的性能问题已大大改善,成为行业标准之一,广泛应用于各种商用平台开发。
|
10天前
|
开发框架 移动开发 Java
课时2:Java简介(Java发展概述)
课时2:Java简介(Java发展概述) 摘要: 1. Java基础知识:介绍Java作为编程语言及其思想。 2. Java的发展历史:从1991年GREEN项目到1995年正式推出,历经网景公司、HotJava浏览器等关键节点。 3. Java的版本信息:涵盖从JDK 1.0到JDK 1.8的主要版本及特性,如Lambda表达式和模块化支持。
|
10天前
|
存储 Java C语言
课时11:Java数据类型简介
本文介绍了Java中的数据类型划分,主要分为基本数据类型和引用数据类型。基本数据类型包括数值型(整型、浮点型)、布尔型和字符型,每种类型有固定的默认值和存储范围。引用数据类型涉及内存使用,如数组、类和接口,默认值为Null。文中还提供了不同类型的选择原则,帮助开发者在实际编程中合理选用数据类型。
|
10天前
|
Java
课时4:JDK简介
课时4:JDK简介。主讲人李兴华,内容分为两部分:1. JDK的具体内容;2. JDK的下载。JDK(Java开发工具包)是Java开发的核心工具,提供编译和解释功能,必须通过官方网站下载并配置。目前主要版本为JDK 10,历史版本包括JDK 1.0、JDK 1.2、JDK 1.5、JDK 1.8等。JDK下载页面提供多平台支持,需先接受协议再选择适合的操作系统版本进行下载。安装完成后即可搭建Java开发环境。
|
10天前
|
Oracle Java Unix
课时1:认识Java(Java发展简介)
课时1:认识Java(Java发展简介)。主讲人李兴华介绍了Java的起源、发展历程及其广泛应用。Java由Sun公司开发,最初为嵌入式系统设计,后演变为三大方向:Java SE、Java ME和Java EE。尽管面临版权争议等挑战,Java仍是最流行的编程语言之一,广泛应用于大型企业及互联网平台开发。
|
6月前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
178 2
|
2月前
|
自然语言处理 Java 关系型数据库
Java mysql根据很长的富文本如何自动获取简介
通过使用Jsoup解析富文本并提取纯文本,然后根据需要生成简介,可以有效地处理和展示长文本内容。该方法简单高效,适用于各种应用场景。希望本文对您在Java中处理富文本并生成简介的需求提供实用的指导和帮助。
67 14
|
2月前
|
自然语言处理 Java 关系型数据库
Java mysql根据很长的富文本如何自动获取简介
通过使用Jsoup解析富文本并提取纯文本,然后根据需要生成简介,可以有效地处理和展示长文本内容。该方法简单高效,适用于各种应用场景。希望本文对您在Java中处理富文本并生成简介的需求提供实用的指导和帮助。
58 9
|
3月前
|
存储 JavaScript Java
Java 中的 String Pool 简介
本文介绍了 Java 中 String 对象及其存储机制 String Pool 的基本概念,包括字符串引用、构造方法中的内存分配、字符串文字与对象的区别、手工引用、垃圾清理、性能优化,以及 Java 9 中的压缩字符串特性。文章详细解析了 String 对象的初始化、内存使用及优化方法,帮助开发者更好地理解和使用 Java 中的字符串。
Java 中的 String Pool 简介