JVM,JRE,JDK 与Java IDE之间的联系

关系图

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

2.JRE(Java Runtime Environment) ,Java运行环境,包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。 (jre里有运行.class的java.exe)。

3.JDK(Java Development Kit),Java标准开发包。它提供了Java运行环境(JRE),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar等)。其中安装目录下的主要文件有:

4.Java IDE(Java Integrated Development Environment),Java集成开发环境。主流的Java集成开发环境有:Eclipse,Spring Boot Suite(STS),IntelliJ IDEA,Netbeans IDE等。

5.JVM,JRE,JDK之间的调用关系:JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。JVM+Lib=JRE。总体来说就是,我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

6.JRE与JDK的区别:JDK 用于开发,JRE 用于运行java程序 ,如果只是运行Java程序,可以只安装JRE,无序安装JDK。在bin文件夹下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容