zoukankan      html  css  js  c++  java
  • JAVA基础系列:JDK目录结构

    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环境

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

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

      src.zipJava所有核心类库的源代码

    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文档;
      jdbJava调试器,可以逐行地执行程序、设置断点和检查变量;
      javah产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件;
      javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义;
      javacJava编译器,将Java源代码换成字节代;
      javaJava解释器,直接从类文件执行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)

  • 相关阅读:
    【Android】【踩坑日记】RecyclerView获取子View的正确姿势
    【Thinking in Java】编写构造器时应注意:尽量避免调用其他非private方法
    为什么匿名内部类只能访问final变量【转】
    【Thinking in Java】类和对象的初始化过程
    【Thinking in Java】Java Callable的使用
    【算法与数据结构】二叉搜索树的Java实现
    【Thinking in Java】组合、继承和代理的区别
    【面试经历】腾讯一二面分享与总结
    【面试经历】腾讯、网易有道和阿里的笔试分享及自我总结
    《Unity預計算即時GI》笔记:三、Clusters和总结
  • 原文地址:https://www.cnblogs.com/haimishasha/p/12297524.html
Copyright © 2011-2022 走看看