对于一个java程序的开发者而言,jdk,jre,jvm这三个东西你一定经常会听到
我们今天就来聊聊这三者之间的关系与区别

下面是它们三者之间的结构图

java jna 和jni区别 java和jdk_字节码


在这里使用大白话讲一下

1.本地计算机要装一个系统(Windows, Linux,mac)

2.接下来在电脑系统上装上jdk(java开发工具包)

3.在jdk里面包括了jre(java运行环境)和jvm(java虚拟机)

4.在jdk(java开发工具包)上安装的是我们智能化的java语言集成开发工具

(idea,Eclipse)

=细讲一下三者的概念
JDK(Java SE Development Kit),指的是Java标准开发包,它提供了编译、运行Java程序所需的工具和资源,JDK包括Java编译器、Java运行时的环境,以及常用的Java类库。

java jna 和jni区别 java和jdk_intellij-idea_02


以jdk8来举一例子,打开jdk之后,你会看见如上图所示的4个主要的目录文件

它们分别是:
bin: 在这里编译器(javac.exe)
include: java与jvm进行交互的文件
jre:java的运行环境
lib:类库

jre(java运行环境),用来解释java的字节码文件,如果你是一个普通的计算机用户,只需要安装好jre就可以使自己的计算机可以运行java程序,然而程序的开发者为了可以编辑,调试程序必须安装好jdk
jre包括了lib与bin(主要包含的文件)

JVM(Java Virtual Mechinal),Java虚拟机,是JRE的一部分。它是整个java实现跨平台的最核心的关键,负责解释执行字节码文件,是可运行java字节码文件的虚拟机。

当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。不同平台的JVM都是不同的,但它们都提供了相同的接口。JVM是Java程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。

区别与联系

JDK 用于开发,JRE 用于运行java程序
JDk包含JRE,JDK 和 JRE 中都包含 JVM。
JVM 是 是可运行java字节码文件的虚拟机。

好了,今天就到这里了,希望对你有帮助
有问题私聊,不周之处请指教,谢谢