likes
comments
collection
share

Java | 一分钟掌握JDK命令行工具 | 2- 分类

作者站长头像
站长
· 阅读数 34

作者:Mars酱

声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。

转载:欢迎转载,转载前先请联系我!

JDK命令行工具分类

命令行工具按照功能可以分为以下几个重要的大类:

主要工具

主要工具是用来完成主要工作的(废话),比如:编译、反编译、打包等等,以下是常见的:

  • javac:您可以使用javac工具及其选项来读取Java类和接口定义,并将它们编译为字节码和类文件。
  • javap:使用 javap 命令反汇编一个或多个类文件。
  • javadoc:您可以使用 javadoc 工具及其选项从 Java 源文件生成 API 文档的 HTML 页面。
  • java:您可以使用 java 命令启动 Java 应用程序。
  • jar:您可以使用 jar 命令为类和资源创建归档,以及从归档中操作或恢复单个类或资源。
  • jlink:可以使用 jlink 工具将一组模块及其依赖项组装和优化为自定义运行时映像。
  • jmod:您可以使用 jmod 工具创建 JMOD 文件并列出现有 JMOD 文件的内容。
  • jdeps:使用 jdeps 命令启动 Java 类依赖关系分析器。
  • jdeprscan:您可以使用 jdeprscan 工具作为静态分析工具,扫描 jar 文件(或类文件的其他一些聚合)以查找已弃用的 API 元素的使用。

JShell(勾壳)

勾壳 是我我自己翻译的,毕竟我bia级专业英语。jshell是JDK 9中引入的交互式命令行工具,我们可以:

  1. 快速验证想法:可以在不需要编写完整Java程序的情况下,快速验证代码想法和代码块 ;
  2. 调试和测试:可以用于调试和测试Java代码,在控制台中即时查看输出结果或者异常信息,尤其对于简单的代码块或者函数可以很方便的测试
  3. 提高开发效率:可以帮助Java开发者快速地编写和测试代码,尤其可以节省编写测试代码的时间,并且减少编写单元测试的负担

安全工具

安全工具我就用来生成过密钥对,但是实际上还有其他的功能。安全工具在系统上设置安全策略,并创建可在远程站点设置的安全策略范围内工作的应用程序:

  • keytool:使用 keytool 命令和选项来管理加密密钥、X.509 证书链和受信任证书的密钥库(数据库)。
  • jarsigner:使用 jarsigner 工具对 Java 归档 (JAR) 文件进行签名和验证。

以下在 Windows 上可以管理 Kerberos 票证:

  • kinit:使用 kinit 工具及其选项获取和缓存 Kerberos 票证授予票证。
  • klist:使用 klist 工具显示本地凭证缓存和密钥表中的条目。
  • ktab:使用 ktab 工具来管理存储在本地密钥表中的主体名称和服务密钥。

远程方法调用 (RMI) 工具

支持创建通过 Web 或其他网络进行交互的应用程序:

  • rmic:使用 rmic 编译器通过 Java 远程方法协议 (JRMP) 生成存根和框架类文件。
  • rmiregistry:在基于 UNIX 的系统上使用 rmiregistry 命令在当前主机上的指定端口上创建和启动远程对象注册表。
  • rmid:使用 rmid 命令启动激活系统守护程序,该守护程序允许在 Java 虚拟机 (JVM) 中注册和激活对象。
  • serialver:使用 serialver 命令以适合复制到不断发展类的形式返回一个或多个类的serialVersionUID。

监控工具

这个是比较常用的工具,一般我们用来查看java进程信息:

  • jconsole:这个是图形化的控制台,可以用来监视、管理、分析运行中的Java进程、应用程序。
  • jps:使用 jps 命令列出目标系统上已检测的 JVM。
  • jstat:使用 jstat 命令来监视 JVM 统计信息。
  • jstatd:使用 jstatd 命令监视已检测的 Java HotSpot VM 的创建和终止。

故障排除工具

同样比较常见,我们用来分析和做故障排除任务:

  • jcmd:使用 jcmd 实用程序将诊断命令请求发送到正在运行的 Java 虚拟机 (JVM)。
  • jdb:使用 jdb 命令及其选项来查找和修复 Java 平台程序中的错误。
  • jhsdb:使用 jhsdb 工具从崩溃的 Java 虚拟机 (JVM) 附加到 Java 进程或核心转储。
  • jinfo:使用 jinfo 命令为指定的 Java 进程生成 Java 配置信息。请使用 jhsdb jinfo。
  • jmap:使用 jmap 命令打印指定进程的详细信息。但是官方推荐使用 jhsdb jmap
  • jstack:使用 jstack 命令打印指定 Java 进程的 Java 线程的 Java 堆栈跟踪。但是官方推荐使用 jhsdb jstack

最后

最后就是使用上面的命令排列组合,来应对各种各样的场景了。不过感觉基本上很少人使用主要工具命令行去做编译工作,毕竟现代编码需要集成性编译环境,但是我们掌握如何使用这些命令行工具,可以帮助我们分析系统的性能还是很有用的。

转载自:https://juejin.cn/post/7221461552342515772
评论
请登录