Java中jdk jre jvm 三者之间的关系

mac2025-03-29  6

Java中的 JDK JRE JVM

JDK JRE JVM三者之间联系JDK文件夹Java代码编译过程

JDK JRE JVM

JDK: Java Development Kit (JDK). Java的开发工具包。其包含了Java开发的工具(Javac、Java、jdb等)和基本类库(Java API)。 JRE:Java Runtime Environment (JRE). Java的运行环境。包含了Java运行环境。 JVM:Java Virtual Machine(JVM). Java虚拟机,是整个Java实现跨平台的最核心的部分。

三者之间联系

JDK文件夹

   jdk包含部分的JRE环境,在JDK的安装目录下有一个jre文件,里面有两个文件夹 bin和 lib,在这里可认为bin里的就是JVM,lib目录下则是JVM工作所需要的类库,jvm和 lib合起来就称为JRE。   jdk文件夹:                  bin:包含最主要的编译器(javac.exe)                  db: Java从1.6之后内置了Derby数据库,是一个纯用Java实现的数据库,属于Apache的一个开源项目。用Java可以在任何平台上运行;另一个特点就是体积小,免安装,只需要几个小jar包就可以运行了。                  include: java和 jvm交互用的文件                  lib: 常用类库                  jre: Java运行环境   如果讲的具体点就是bin目录下的jvm.dll文件, jvm.dll无法单独工作,当jvm.dll启动后,会使用explicit的方法(就是使用Win32 API之中的LoadLibrary()与GetProcAddress()来载入辅助用的动态链接库),而这些辅助用的动态链接库(.dll)都必须位 于jvm.dll所在目录的父目录之中。因此想使用哪个JVM,只需要设置PATH,指向JRE所在目录下的jvm.dll。   总结:JDK包含 JRE,JRE包含 JVM,JDK是用来开发Java程序的,JRE则是只能运行.class文件而没有编译功能,一些编程软件都有自带的编译器,所以安装的时候只用选中 jre 的路径就好了。

Java代码编译过程

  Java代码编译过程         源码文件通过编译器编译成为字节码文件,字节码文件通过JVM中的解释器解释成为对应平台的机器码,机械代码不能运行,通过JVM编译器再次编译才能运行                  文件后缀名:*.java文件 - > *.class文件 ->虚拟机上执行                  Java代码编译命令:javac .java -> java.

   在字节码文件编译成为本地机器码的过程中实现了跨平台(平台就是CPU+操作系统)的效果,Java虚拟机针对不同的平台有不同的解释器,能将生成的二进制字节码文件解释成为不同对应平台的机器码,由此实现跨平台的效果。(PS:想象一下翻译器,将中文翻译成为不同国家的语言。)                  注意:跨平台的不是JVM,而是Java程序,通过不同平台安装不同版本的JVM实现Java程序跨平台

最新回复(0)