- 持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第19天,点击查看活动详情
简介
像我们在进行Java开发时经常会用到java基础类,像String、Integer、Double等的数据类型;List、Map、Set等的数据结构;JUC包下的Lock、Atomic等保证原子操作的类;工具类Date、Logging、Time等各种各样的类构成了我们的Java基础开发平台,但是我们对Java的引用内容并不太了解,像上面的包我们都不知道出处及设计出的原因和跟其他类的关联关系,下面我们以jdk1.8为例简单看一下我们java基础jar包的构成。
jar包
看一下jdk1.8的基础包,总共有28个
- ant-javafx.jar
- 作用:javaFX包的ant工具
- charsets.jar
- 作用:Java 字符集,这个类库中包含 Java 所有支持字符集的字符
- cldrdata.jar
- 作用:Unicode CLDR为软件提供了支持世界语言的关键构建块,提供了最大和最广泛的语言环境数据库。 这些数据被广泛的公司用于其软件国际化和本地化,使软件适应不同语言的惯例以用于此类常见软件任务.
- deploy.jar
- 作用:Java安装目录的常见部分 - 该文件运行某些产品的安装。 正确设置Java路径后,用户可以执行此文件(只需双击它或按文件上的Enter键),要部署的应用程序将运行其安装程序。 例如。 诺基亚OVI套件通常使用这种部署形式。 作为彼此的JAVA包,如果您将其重命名为ZIP并打开内容,则可以检查包中的类。
- dnsns.jar
- 作用:即DNS naming service ,提供DNS地址服务的包,里面只有2个方法 getHostByAddr和 lookupAllHostAddr
- dt.jar
- 作用:运行环境的类库,里面主要是swing组件的BeanInfo。IDE根据这些BeanInfo显示这些组件以及开发人员如何定制他们。
- jaccess.jar
- 作用:定义Assistive Technologies.AWT(Abstract Window Toolkit)中文译为抽象窗口工具包。
- javafx-mx.jar
- 作用:包含了一些列图形和媒体包,允许程序员设计、创建、测试、调试、和部署富客户端应用并且保持跨平台的操作一致性。
- javaws.jar
- 作用:JNLP(Java Network Launching Protocol )是java提供的一种可以通过浏览器直接执行java应用程序的途径。
- jce.jar
- 作用:java类库是java发布之初就确定了的基础库, 而javax类库则是在上面增加的一层东西,就是为了保持版本兼容要保存原来的,但有些东西有了更好的解决方案, 所以,就加上些,典型的就是awt(Abstract Windowing ToolKit) 和swing。) 这个包都是加密相关的。
- jconsole.jar
- 作用:Jconsole控制台 Java监视和管理控制台
- jfr.jar
- 作用:和 jdk\bin\jmc.exe有关系。Java Mission Control 包括 JMX 控制台和 Java 飞行记录器。 Java 飞行记录器 (JFR) 是一个用于收集有关正在运行的 Java 应用程序的诊断数据和概要分析数据的工具。它集成到 Java 虚拟机 (JVM) 中, 几乎不会带来性能开销,因此甚至可以在高负载生产环境中使用。使用默认设置时,内部测试和客户反馈表明性能影响低于 1%。 对于一些应用程序,这一数字会大幅降低。但是,对于短时间运行的应用程序 (不是在生产环境中运行的应用程序类型), 相对的启动和预热时间可能会较长,这对性能的影响可能会超过 1%。JFR 收集有关 JVM 及其上运行的 Java 应用程序的数据。
- jfxrt.jar
- 作用:JDK有个 rt.jar ,是存储JAVA语言核心类的的。这个jfxrt.jar就相当于JavaFX的rt.jar. JavaFX是一组图形和媒体包,使开发人员能够设计,创建,测试,调试和部署在不同平台上一致运行的富客户端应用程序。在jdk最新的发版当中,javafx的包已经被移除了。
- jfxswt.jar
- 作用:也是和JavaFx相关,为JavaFx和Swing提供一些兼容性操作。
- jsse.jar
- 作用:SSL连接,验证的包,
- localedata.jar
- 作用:日期显示国际化的包,里面包含各地区的日期文字。
- management-agent.jar
- 作用:里面只有一个文本文件。
- nashorn.jar
- 作用:
- 1.动态链接.包含用于链接调用的动态调用站点的接口和类。 dynalink与java.lang.invoke包密切相关,并且依赖于该包。 虽然java.lang.invoke为invoke dynamic调用站点的动态链接提供了一个低级别的API,但它不提供一种方法来表示对象的更高级别操作,也不提供实现这些操作的方法。 如果一种语言是静态类型的,并且它的类型系统与JVM的类型系统匹配,那么它可以使用通常的调用、字段访问等指令(例如invokevirtual、getfield)来实现这一点。 但是,如果语言是动态的(因此,某些表达式的类型直到在运行时进行计算时才知道),或者其对象模型或类型系统与JVM的对象模型或类型系统不匹配, 那么它应该使用invokedynamic调用站点,并让dynalink管理它们。
- 2.Javascript引擎 从 JDK 8 开始,Nashorn取代 Rhino 成为 Java 的嵌入式 JavaScript 引擎。Nashorn 完全支持ECMAScript 5.1 规范以及一些扩展。该特性允许开发人员将 JavaScript 代码嵌入到 Java 中,甚至从嵌入的 JavaScript 中调用 Java。此外, 它还提供了使用jrunscript从命令行运行 JavaScript 的能力。
- 作用:
- packager.jar
- 作用:Java Packager 工具可用于从命令行编译、打包、签名和部署 Java 和 JavaFX 应用程序。 它可以用作 Ant 任务的替代方案或在 IDE 中构建应用程序。 Java Packager 工具不适用于 Solaris 平台。
- plugin.jar
- 作用:这个包概括了很多东西
- resources.jar
- 作用:提示信息显示国际化的包,里面各地区的文字,图片等。
- rt.jar
- 作用:java核心源代码包 像上文开头时讲的开发时用的类都在此包中,我们源码的阅读也主要在此jar包中阅读即可
- sa-jdi.jar
- 作用:sa-jdi.jar是HotSpot自带的底层调试支持,Serviceability Agent的实现,了解JVM
- sunec.jar
- 作用:加密相关
- sunjce_provider.jar
- 作用:加密相关
- sunpkcs11.jar
- 作用:加密相关
- tools.jar
- 作用:tools.jar是工具类库,编译和运行需要的都是toos。包括javac,java,javap,javadoc等
- zipfs.jar
- 作用:java 对zip文件操作的支持。