0. 名词解释

SDK: Softeare Development Kit,用于开发JavaEE,包括JDK。

JDK: Java Development Kit,java开发工具包,包括Java编译器(javac)、jre(java运行时环境)、java 类库。

JRE: Java Runtime Environment, Java运行时环境,包括JVM和其他环境支持(类加载器、字节码校验器、大量的基础类库)。

JVM: Java Virtual Machine,Java虚拟机。

如果开发,下载JDK即可,包括了JRE,不需要另外下载。

如果仅运行,下载JRE即可,包括了JVM。

JVM不提供单独下载。

1. JDK目录结构

  bin: 该路径下存放了JDK的各种命令,常用的javac、java等。

  include: 一些平台特定的头文件,支持Java本地接口和Java虚拟机调试程序接口的本地编程技术。

  jre: 运行java程序所必须的JRE环境。

  lib:JDK工具命令的实际执行程序,bin路径下的绝大部分命令都是包装了tools.jar如(lib->tools.jar->sun\tools\javac\Main.class  javac命令的实际执行类;bin下的javac.exe命令实际上仅仅包装了这个Java类)。

  javafx-src.zip:Java FX所有核心类库的源代码,JavaFX它是一种声明式、静态类型编程语言。(jdk1.8下新加的)。

  src.zip:Java所有核心类库的源代码。

COPYRIGHT和LICENSE为版权和签证的说明性文档。

2. bin目录

1. 监控 

  jps:JVM Process Status Tool显示指定系统内所有正在运行的HotSpot虚拟机进程,包括进程ID,进程启动的路径及启动参数等等。

  jstat:JVM Statistics Monitoring Tool 用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。

类的加载及卸载情况
查看新生代、老生代及持久代的容量及使用情况
查看新生代、老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间
查看新生代中Eden区及Survior区中容量及分配情况等

  jinfo:Configuration Info for java 实时查看和调整虚拟机运行参数。

  jmap:Memory Map for Java 生产虚拟机的内存转储快照(heapdump文件)

  jhat:JVM Heap Dump Browaser ,用于离线分析heapdump文件,他会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析的结果

  jstack:Stack Trace for java 显示虚拟机的线程快照  

  jcmd:一个多功能的工具,可以用它来导出堆、查看Java进程、导出线程信息、执行GC、还可以进行采样分析(jmc 工具的飞行记录器)。

  jconsole:一个java GUI监视工具,用来监控VM,并可监控远程的VM。

  jstatd:基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。

2. 常用

  appletviewel(小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器;
  javadoc:根据Java源代码及其说明语句生成的HTML文档;
  jdb:Java调试器,可以逐行地执行程序、设置断点和检查变量;
  javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件;
  javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义;
  javac:Java编译器,将Java源代码换成字节代;
  java:Java解释器,直接从类文件执行Java应用程序代码;

  jar:多用途的存档及压缩工具,是个java应用程序,可将多个文件合并为单个JAR归档文件。

3. 远程调用

  rmic:为远程调用编译生成远程调用时所需的文件 
  rmid:用于启动激活系统守护进程,以便远程对象可以在JVM中注册和激活 
  rmiregistry:启动一个远程对象注册表中指定的端口

4. Web Service

  wsgen:是一个命令行功能用来生成合适的JAX-WS。它读取WebService的终端类文件,同时生成所有用于WebService发布的源代码文件和经过编译过的二进制类文 件。它还随意生成WSDL和符合规范的HelloServer类WebService。wsgen从资源文件生成一个完整的操作列表是合法的。 
  wsimport:这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService提供的方法了  

5. 压缩

  pack200:对jar文件进行高效的压缩

  unpack200:对pack200进行压缩的jar文件进行解压

6. 其他

  extcheck:检测目标 jar 文件与当前安装方式扩展 jar 文件间的版本冲突。 
  idlj:对idl文件进行解析,生成所需的java文件 
  jarsigner:为 Java 归档 (JAR) 文件产生签名,并校验已签名的 JAR 文件的签名 
  jrunscript:一个JS解释器 
  keytool:是安全钥匙与证书的管理工具,它管理一个存储了私有钥匙和验证相应公共钥匙的与它们相关联的X.509 证书链的keystore 
  native2ascii:用于转换字符或者文件的编码格式,将含有不是Unicode或Latinl字符的的文件转换为Unicode编码字符的文件。
  orbd:用于实现corba接口(分布式应用) 
  packager: 将Jar文件包装成其他格式的文件 
  policytool:java中的策略管理 
  serialver:用于返回一个类的serialverUID 
  servertools:为程序员提供了一个命令行接口,用于注册,取消注册,启动,关闭一个服务  
  

学习网址

  1. jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)

JAVA基础系列:JDK目录结构的更多相关文章

  1. 夯实Java基础系列5:Java文件和Java包结构

    目录 Java中的包概念 包的作用 package 的目录结构 设置 CLASSPATH 系统变量 常用jar包 java软件包的类型 dt.jar rt.jar *.java文件的奥秘 *.Java ...

  2. 夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!

    目录 目录 string基础 Java String 类 创建字符串 StringDemo.java 文件代码: String基本用法 创建String对象的常用方法 String中常用的方法,用法如 ...

  3. 夯实Java基础系列6:一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别!

    目录 抽象类介绍 为什么要用抽象类 一个抽象类小故事 一个抽象类小游戏 接口介绍 接口与类相似点: 接口与类的区别: 接口特性 抽象类和接口的区别 接口的使用: 接口最佳实践:设计模式中的工厂模式 接 ...

  4. 夯实Java基础系列13:深入理解Java中的泛型

    目录 泛型概述 一个栗子 特性 泛型的使用方式 泛型类 泛型接口 泛型通配符 泛型方法 泛型方法的基本用法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型方法总结 泛型上下边界 泛型常见面试 ...

  5. 夯实Java基础系列14:深入理解Java枚举类

    目录 初探枚举类 枚举类-语法 枚举类的具体使用 使用枚举类的注意事项 枚举类的实现原理 枚举类实战 实战一无参 实战二有一参 实战三有两参 枚举类总结 枚举 API 总结 参考文章 微信公众号 Ja ...

  6. Java基础系列-Collector和Collectors

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/10748925.html 一.概述 Collector是专门用来作为Stream的coll ...

  7. Java基础系列--HashMap(JDK1.8)

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/10022092.html Java基础系列-HashMap 1.8 概述 HashMap是 ...

  8. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 [https://github.com/h2pl/Java-Tutorial](https: ...

  9. 夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理

    目录 final使用 final变量 final修饰基本数据类型变量和引用 final类 final关键字的知识点 final关键字的最佳实践 final的用法 关于空白final final内存分配 ...

随机推荐

  1. WeChair项目Alpha冲刺(2/10)

    团队项目进行情况 1.昨日进展    Alpha冲刺第二天 昨日进展: 前端完成小程序首页的html+css设计 后端springboot项目搭建完成 详情参见github 数据库也初步建成一些表格, ...

  2. Oracle调用Java方法(下)复杂Jar包封装成Oracle方法以及ORA-29521错误

    上一篇随笔中已经说了简单的Jar是如何封装的,但是我的需求是根据TIPTOP的查询条件产生XML文件并上传到FTP主机中,那么就要涉及到XML生成的方法和FTP上传的方法 所以在Eclipse写的时候 ...

  3. Spring如何解决循环依赖?

    介绍 先说一下什么是循环依赖,Spring在初始化A的时候需要注入B,而初始化B的时候需要注入A,在Spring启动后这2个Bean都要被初始化完成 Spring的循环依赖有两种场景 构造器的循环依赖 ...

  4. 虹软AI 人脸识别SDK接入 — 参数优化篇

    引言 使用了免费的人脸识别算法,感觉还是很不错的,但是初次接触的话会对一些接口的参数有些疑问的.这里分享一下我对一些参数的验证结果(这里以windows版本为例,linux.android基本一样), ...

  5. linux下的c语言编程学习笔记

    视频参看csdn学院王阳和下面的linux环境下c语言编程基础相当的经典,其中王阳的视频讲的很好,相当的经典 编译hellogcc.c需要依赖/home目录下的头文件 为了避免同一个文件被includ ...

  6. 新来的"大神"用策略模式把if else给"优化"了,技术总监说:能不能想好了再改?

    本文来自作者投稿,原作者:上帝爱吃苹果 目前在魔都,贝壳找房是我的雇主,平时关注一些 java 领域相关的技术,希望你们能在这篇文章中找到些有用的东西.个人水平有限,如果文章有错误还请指出,在留言区一 ...

  7. Zookeeper分布式过程协同技术 - 群首选举

    Zookeeper分布式过程协同技术 - 群首选举 群首概念 群首为集群中服务器选择出来的一个服务器,并被集群认可.设置群首目的在与对客户端所发起的状态变更请求进行排序,包括:create.setDa ...

  8. 入门大数据---Kafka消费者详解

    一.消费者和消费者群组 在 Kafka 中,消费者通常是消费者群组的一部分,多个消费者群组共同读取同一个主题时,彼此之间互不影响.Kafka 之所以要引入消费者群组这个概念是因为 Kafka 消费者经 ...

  9. 入门大数据---Spark简介

    一.简介 Spark 于 2009 年诞生于加州大学伯克利分校 AMPLab,2013 年被捐赠给 Apache 软件基金会,2014 年 2 月成为 Apache 的顶级项目.相对于 MapRedu ...

  10. MongoDB快速入门教程 (3.2)

    3.2.索引 索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,建立索引,通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条 ...