每个开发人员都应该知道的 Java 命令行界面工具

createh55个月前 (01-06)技术教程80

在基于 IDE 的开发世界中,程序员很容易脱离 JDK 和使他们的应用程序工作的底层技术。下面列出了开发人员需要掌握的五个最有用的 Java 命令行工具,才能成为他们团队的高效成员。

1. Java编译器:javac

javac 实用程序是你可以在 JDK bin 目录中找到的最重要的命令行界面 (CLI) 工具。这是 Java 编译器,无论你使用 MavenGradleSpringSource IDE 还是 Jenkins CI,在编译 Java 源代码时都会使用这个 JDK 工具。

但是,如果所有流行的构建框架都只是抽象了它的使用,为什么开发人员需要了解 javac 命令行程序呢?好吧,当项目的构建和部署管道中出现难以诊断的问题时,故障排除从工具链中最基本的组件开始,而这通常是编译代码的地方。当构建横向运行时,开发人员通常需要将所有花哨的打包和部署工具放在一边,并恢复到第一原则。这意味着使用 JDK javac 实用程序编译代码。

2. Java 分析器:javap

你可以将 Java 命令行工具 javap 视为对 javac 实用程序的补充。 当 javac 编译代码时,javap 实用程序反转该编译并提供有关已编译类的信息,例如它声明的变量类型,以及它提供的各种方法和 APIjavap JDK 工具不会将已编译的类完全返回为其原始源代码格式,但它确实提供了有关原始源代码设计方式的见解。

javap命令行程序也可以用来查看用于创建类文件的编译器版本,这对故障排除很有帮助。 此外,javap 工具可以向你显示编译器为类创建的字节码,并提供有关组件如何执行其逻辑的见解。

3. Java 统计聚合器:jstat

你的应用程序是否遇到运行时问题?为什么不打开 jstat 实用程序?

两个最常调整的 Java 虚拟机 (JVM) 参数是堆大小和 Java 运行时环境 (JRE) 的垃圾收集算法。这个统计监控 Java CLI 工具提供了类加载器指标、即时编译器如何工作的见解,以及最重要的是,关于垃圾收集发生频率的数据。有了这些统计数据,你就可以就如何配置 JVM 以获得最佳性能做出明智的决定。


4.Java依赖管理器:jdeps

使用 Java 12,将不允许编译任何引用内部 API 的代码库。在不久的将来,即使链接到引用内部 API 的已编译组件也会触发构建失败。如果你想知道任何现有代码是否使用或引用了内部 Java APIjdeps Java CLI 应用程序会告诉你。此外,如果它确实在你的源代码中识别出对内部 API 的引用,它通常会提供有关更新的、更可取的 API 的建议,你可以使用它来替换坏的 API

5. Java 归档实用程序:jar

创建压缩归档文件并没有什么特别神奇的地方,这是 Java jar 实用程序的主要用途。但是这个 Java 命令行工具还有其他一些有用的特性。除了能够创建压缩的 zip 文件外,jar 实用程序还可用于指定可执行或嵌入式 JAR 文件的入口点、配置在 JRE 上运行时使用的选项,甚至记录 JAR 文件的内部内容。当你想将一个版本的代码版本与另一个版本进行比较时,Jar 会很有用。当然,除了能够压缩文件之外,JDK 工具 jar 还可以用于提取归档文件的内容。

JDK bin 目录中还打包了许多其他有趣的 Java 命令行界面工具,研究它们并探索它们的实用程序符合每个 Java 开发人员的最大利益。但是这些前面提到的 Java 命令行工具——即 javacjavapjstatjdeps jar——是认真的软件开发人员需要知道的五个。


了解更多

相关文章

第十三章:Java图形用户界面编程

Java图形用户界面(Graphical User Interface,GUI)编程是一种创建交互式应用程序界面的技术。通过使用GUI,开发人员可以创建具有按钮、文本框、复选框等可视化组件的应用程序。...

8款主流Java开发工具详解(99%人都在使用)

优秀的Java开发工具可以极大的提升我们的开发效率,所以今天给大家推荐一波必备Java开发工具@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。Java开发环境...

Java设计模式之外观模式

一、外观模式介绍1.1 外观模式定义外观模式( Facade Pattern),也叫门面模式, 外观模式的原始定义是:为子系统中的一组接口提供统一的接口。它定义了一个更高级别的接口,使子系统更易于使用...

一些JDK自带的性能分析利器

有时候碰到服务器CPU飙升或者程序卡死之类的问题,一般都不太好定位。这类bug一般都隐藏的比较深并且还可能是偶发性的,比较棘手。对于此类问题,一般我们都有固定的分析流程。借助于JDK自带的一些分析工具...

pascal——一个开发图形界面相当牛逼的语言

用纯pascal语言开发一个功能简单的程序,其大小基本在178kb左右。但是用C语言开发功能相同的程序,其大小只有17kb左右,是pascal语言开发的程序的1/10大小,可见C语言的机器代码质量是相...