JDK与JRE的区别与联系
含义:
JDK:Java Development Kit,简单来说就是面向开发人员用的软件开发包(Software Development Kit)
JRE:Java Runtime Enviroment,就是Java运行环境,面向Java程序的使用者,不是开发者
如果安装JDK,会同时安装两个Jre,一个在JDK所在目录中的/jre文件夹里,另一个在C:\Programe Files\Java目录下的Jre。
如果只安装Jre的话,那么就不会有JDK所在目录下的Jre,就只会有唯一一个C盘里的Jre
JRE的作用
Jre就好比于一个PC机,所有window应用程序都在PC机上运行,同样的所有的Java程序都在JRE上面运行。==Jre包含了Java虚拟机,Java基础类库等==,因此提供了运行Java的环境。
JDK的作用
JDK是提供给程序员使用的,JDK包含Jre,Javac编译器,还有很多Java程序调试和分析的工具
为什么JDK要使用两套JRE?
首先JRE是Java应用程序的运行环境,然后JDK里面的工具几乎都是Java编写的,所以也是Java应用程序,因此JDK目录下也要自附一套JRE,这是用来运行JDK里面的Java应用程序。而C盘下面的JRE是用来运行一般Java应用程序的。
还需要注意的是
- JVM:Java Virtual Machine。所有的Java程序都会被编译成.class文件,然后.class文件并不直接与计算机操作系统相对应,而是通过JVM与操作系统简介运行(详情看《深入分析JavaWeb技术内幕》以及《深入理解Java虚拟机》)
- JRE:Java Runtime Environment。光有JVM还不能成功执行.class文件,还需要一些类库lib。在安装JDK的目录下面找到JRE目录,里面有两个文件夹bin和lib,可以这样认为bin就是jvm,而lib就是jvm工作时所需要的类库,所以jre=jvm+lib,jvm=bin。==所以在写完Java程序编译成.class文件后,就可以把.class文件和jre一起打包给别人,别人就可以运行我的Java程序了(因为jre里面有运行.class文件的java.exe)==。
- JDK:Java Development Kit。看一下JDK的安装目录。
- bin:最主要的编译器javac.exe
- lib:类库
- db:Java实现的数据库
- include:java和JVM交互用的头文件
- jre:JDK里面Java程序的运行环境。
- src:src类库源码包
真正运行Java时起作用的bin,include,lib,jre
附录
关于JDK详细的目录讲解请参考此链接JDk目录详解
关于上文的详细来源,请参考此博文JDK与Jre的区别