JavaDevelopmentKit(JDK)是一个用于开发Java应用程序和小程序的软件开发环境。它包括JavaRuntimeEnvironment(JRE)、Interpreter/Loader(Java)、Compiler(javac)、Archiver(jar)、DocumentationGenerator(Javadoc)以及Java开发所需的其他工具。现在我们需要一个环境来运行我们的程序。此后,JRE代表“JavaRuntimeEnvironment”,也可以写成“JavaRTE”。Java运行时环境提供了执行Java应用程序的最低要求;它由Java虚拟机(JVM)、核心类和支持文件组成。现在让我们谈谈JVM,它代表Java虚拟机。如下:规定了Java虚拟机运行的规范。但是实施提供者独立选择算法。它的实现由Sun和其他公司提供。实现是满足JVM规范要求的计算机程序。每当您在命令提示符下编写java命令以运行java类时,运行时实例都会创建一个JVM实例。在继续讨论JDK、JRE和JVM之间的差异之前,让我们简要讨论一下它们并将它们与下图相关联。不要混淆,我们将一一讨论。(1)JDK(JavaDevelopmentKit)是提供开发和执行(运行)Java程序的环境的工具包。JDK是一个工具包(或包),它包括两个东西:开发工具(提供开发Java程序的环境)和JRE(执行你的Java程序)。(2)JRE(JavaRuntimeEnvironment)是一个安装包,它提供了一个只在你的机器上运行(而不是开发)java程序(或应用程序)的环境。JRE仅适用于那些只想作为系统的最终用户运行Java程序的人。(3)JVM(JavaVirtualMachine)是JDK和JRE中非常重要的一部分,因为它包含或内置于两者之中。不管你使用JRE还是JDK,你运行的Java程序都会进入JVM,而JVM负责一行一行的执行Java程序,所以又被称为解释器。现在让我们讨论JRE的组件以了解其重要性并了解其实际工作方式。为此,让我们讨论组件。JRE的组成部分如下:DeploymentTechnology,包括Deployment、JavaWebStart和JavaPlug-ins。用户界面工具包,包括抽象窗口工具包(AWT)、Swing、Java2D、辅助功能、图像I/O、打印服务、声音、拖放(DnD)和输入法。集成库,包括接口定义语言(IDL)、Java数据库连接(JDBC)、Java命名和目录接口(JNDI)、远程方法调用(RMI)、基于InternetInter-Orb协议的远程方法调用(RMI-IIOP),以及脚本。其他基础库,包括国际支持、输入/输出(I/O)、扩展机制、Bean、Java管理扩展(JMX)、Java本机接口(JNI)、数学、网络、覆盖机制、安全性、序列化和JavaXML处理(XMLJAXP)。Lang和util基础库,包括lang和util、管理、版本控制、zip、检测、反射、集合、并发实用程序、Java归档(JAR)、日志记录、首选项API、引用对象和正则表达式。Java虚拟机(JVM),包括JavaHotSpot客户端和服务器虚拟机。现在我们已经对这些组件有了足够的了解,让我们来讨论一下JRE是如何工作的。要了解JRE的工作原理,让我们考虑以下示例:考虑一个保存为“Example.java”的java源文件。该文件被编译成一组字节码,存储在“.class”文件中。在这里它将是“Example.class”。注:编译时的媒体操作计算可以从上面解释。以下操作在运行时发生如下:(1)类加载器(2)字节码验证器(3)解释器执行字节码以对底层硬件进行适当的调用现在让我们简要讨论一下JVM是如何工作的。如下:Java程序运行时,JVM成为JRE的一个实例。它被广泛称为运行时解释器。JVM在很大程度上有助于从使用JDK库的程序员那里抽象出内部实现。它主要负责三个活动。LoadingLinkingInitialization同样,现在让我们讨论一下JRE是如何工作的:JVM(Java虚拟机)充当运行Java应用程序的运行时引擎。JVM是实际调用java代码中存在的主要方法的那个。JVM是JRE(Java运行时环境)的一部分。Java应用程序称为WORA(一次编写,随处运行)。这意味着程序员可以在一个系统上开发Java代码,并期望它无需任何调整就可以在任何其他支持Java的系统上运行。多亏了JVM,这一切都是可能的。当我们编译文件*.java时,Java编译器生成*.class文件(包含字节码),其类名与*.java文件中的类名相同。当我们运行这个*.class文件时,它会经历多个步骤。这些步骤共同描述了整个JVM。
