网站首页 > 文章精选 正文
在基于 IDE 的开发世界中,程序员很容易脱离 JDK 和使他们的应用程序工作的底层技术。下面列出了开发人员需要掌握的五个最有用的 Java 命令行工具,才能成为他们团队的高效成员。
1. Java编译器:javac
javac 实用程序是你可以在 JDK 的 bin 目录中找到的最重要的命令行界面 (CLI) 工具。这是 Java 编译器,无论你使用 Maven、Gradle、SpringSource IDE 还是 Jenkins CI,在编译 Java 源代码时都会使用这个 JDK 工具。
但是,如果所有流行的构建框架都只是抽象了它的使用,为什么开发人员需要了解 javac 命令行程序呢?好吧,当项目的构建和部署管道中出现难以诊断的问题时,故障排除从工具链中最基本的组件开始,而这通常是编译代码的地方。当构建横向运行时,开发人员通常需要将所有花哨的打包和部署工具放在一边,并恢复到第一原则。这意味着使用 JDK 的 javac 实用程序编译代码。
2. Java 分析器:javap
你可以将 Java 命令行工具 javap 视为对 javac 实用程序的补充。 当 javac 编译代码时,javap 实用程序反转该编译并提供有关已编译类的信息,例如它声明的变量类型,以及它提供的各种方法和 API。 javap JDK 工具不会将已编译的类完全返回为其原始源代码格式,但它确实提供了有关原始源代码设计方式的见解。
javap命令行程序也可以用来查看用于创建类文件的编译器版本,这对故障排除很有帮助。 此外,javap 工具可以向你显示编译器为类创建的字节码,并提供有关组件如何执行其逻辑的见解。
3. Java 统计聚合器:jstat
你的应用程序是否遇到运行时问题?为什么不打开 jstat 实用程序?
两个最常调整的 Java 虚拟机 (JVM) 参数是堆大小和 Java 运行时环境 (JRE) 的垃圾收集算法。这个统计监控 Java CLI 工具提供了类加载器指标、即时编译器如何工作的见解,以及最重要的是,关于垃圾收集发生频率的数据。有了这些统计数据,你就可以就如何配置 JVM 以获得最佳性能做出明智的决定。
4.Java依赖管理器:jdeps
使用 Java 12,将不允许编译任何引用内部 API 的代码库。在不久的将来,即使链接到引用内部 API 的已编译组件也会触发构建失败。如果你想知道任何现有代码是否使用或引用了内部 Java API,jdeps Java CLI 应用程序会告诉你。此外,如果它确实在你的源代码中识别出对内部 API 的引用,它通常会提供有关更新的、更可取的 API 的建议,你可以使用它来替换坏的 API。
5. Java 归档实用程序:jar
创建压缩归档文件并没有什么特别神奇的地方,这是 Java jar 实用程序的主要用途。但是这个 Java 命令行工具还有其他一些有用的特性。除了能够创建压缩的 zip 文件外,jar 实用程序还可用于指定可执行或嵌入式 JAR 文件的入口点、配置在 JRE 上运行时使用的选项,甚至记录 JAR 文件的内部内容。当你想将一个版本的代码版本与另一个版本进行比较时,Jar 会很有用。当然,除了能够压缩文件之外,JDK 工具 jar 还可以用于提取归档文件的内容。
JDK 的 bin 目录中还打包了许多其他有趣的 Java 命令行界面工具,研究它们并探索它们的实用程序符合每个 Java 开发人员的最大利益。但是这些前面提到的 Java 命令行工具——即 javac、javap、jstat、jdeps 和 jar——是认真的软件开发人员需要知道的五个。
- 上一篇: 一文吃透 JVM 对代码的几种优化手段!
- 下一篇: 【技术探秘】一文读懂类的加载过程及双亲委派设计
猜你喜欢
- 2025-01-23 Java程序员终极面试题(java程序员面试题库)
- 2025-01-23 人生中的第一个Java程序:HelloWorld
- 2025-01-23 彻底搞定JAVA乱码问题来龙去脉(java乱码问题解决)
- 2025-01-23 面试必杀技:Jmeter性能测试攻略大全(第二弹)
- 2025-01-23 PATH系统环境变量配置教程【图文步骤】
- 2025-01-23 如何在Windows10中配置java的JDK环境
- 2025-01-23 java环境变量设置(java环境变量怎么设置)
- 2025-01-23 Java First Hello World 程序(hello world.java)
- 2025-01-23 Linux 下安装JDK17(linux如何安装jdk1.8)
- 2025-01-23 java编程、java学习:深刻理解Java编程的7个例子
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)