首页 > 编程语言 >Java | 一分钟掌握JDK命令行工具 | 2- 分类

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

时间:2023-04-13 19:33:31浏览次数:40  
标签:Java JVM JDK 命令 密钥 命令行 使用 工具

 作者: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

最后

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

标签:Java,JVM,JDK,命令,密钥,命令行,使用,工具
From: https://blog.51cto.com/u_15424046/6188317

相关文章

  • Java GC基础知识
    1对象存活判断1.1引用计数在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的引用计数法的缺陷:publicclassReferenceCountingGC{publicObjectinstance=null;priv......
  • Java基础
    cmd打开Java代码//代码编译javacHello.java//运行编译码javaHelloJDK、JRE和JVM的关系JDK=JRE+开发工具集(如Javac、java编译工具等)JRE=JVM+JavaSE标准类库只测试只需要JRE即可Java八大数据类型数据转换自动转换规则容量大的类型能......
  • centos安装jdk
    1.Linux准备工作将我们下载好的jdk安装包上传到/usr/local目录下cd/usr/local 2.安装jdk 将下载好的安装包放到我们刚刚创建好的 /usr/local目录下执行tar-zxvfjdk-8u361-linux-x64.tar.gz命令解压安装包。注意:这里的安装包名字根据自己的实际安装包修改。再将......
  • Java 程序连接数据库服务端程序的助手类
    username=用户名password=密码jdbcURL=jdbc:mysql://IP地址:端口号/数据库名?useUnicode=true&useSSL=false&amp&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=truejdbcDriver=com.mysql.cj.jdbc.Driver import......
  • Javascript内置对象
    内置对象(常用方法)Math(不是构造函数,直接调用)/**@file封装自己的myMath对象@authorlxs/varmyMath={PI:3.1415926,/*@description求最小值@returns{Number}max@examplemax(3,5)//5/max:function(){varmax=arguments[0];for(vari=1;i<arg......
  • 【Java技术专题】「盲点追踪」突破知识盲点分析Java安全管理器(SecurityManager)
    前提介绍Java安全应该包括两方面的内容,一是Java平台(即是Java运行环境)的安全性;二是Java语言开发的应用程序的安全性。由于我们不是Java本身语言的制定开发者,所以第一个安全性不需要我们考虑。其中第二个安全性是我们重点考虑的问题,一般我们可以通过安全管理器机制来完善安全性,安全管......
  • Java项目开启JMX:Prometheus数据上报
    对于Java项目而言,开启JMX进行JVM监控是很有必要的,可以帮忙开发人员分析、定位问题常规开启JavaJMX方法一般可以在启动脚本中添加相关的参数-Dcom.sun.management.jmxremote.port=6543-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=......
  • Spring IOC容器注解大全—基于Java的容器配置
    本节介绍了如何在你的Java代码中使用注解来配置Spring容器。它包括以下主题。基本概念:@Bean 和 @Configuration通过使用 AnnotationConfigApplicationContext 实例化Spring容器使用 @Bean 注解使用 @Configuration 注解构建基于Java的配置Bean定义配置PropertySource 抽象......
  • 万字详解 | Java 流式编程
    概述StreamAPI是Java中引入的一种新的数据处理方法。它提供了一种高效且易于使用的方法来处理数据集合。StreamAPI支持函数式编程,可以让我们以简洁、优雅的方式进行数据操作,还有使用Stream的两大原因:在大多数情况下,将对象存储在集合中就是为了处理它们,因此你会发现你把编程......
  • javaweb验证码
    publicclassmyfunction{publicstaticStringgetRandString(intlength){Stringstr="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";Randomrandom=newRandom();StringBuffersb=newStringBuffe......