JDK里面的工具也是用JAVA编写的,它们本身运行的时候也需要一套JRE,如C:\Program Files\Java\jdk1.5.x\目录下的JRE。而C:\Program Files\Java\目录下的JRE是用来执行我们自己编写的JAVA程序。当然,两套JRE中的任何一套都可以用来执行我们自己编写的JAVA程序,但是JDK里面的工具只能由C:\Program Files\Java\jdk1.5.x\目录下的JRE来执行。
1.JVM -- java virtual machine
JVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
2.JRE -- java runtime environment
JRE 是指java运行环境。光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就可以运行你写程序了。(jre里有运行.class的java.exe)
3.JDK -- java development kit
JDK是 java开发工具包,基本上每个学java的人都会先在机器上装一个JDK,那他都包含哪几部分呢?让我们看一下JDK的安装目录。在目录下面有六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的是以下四个文件夹:bin、include、lib、jre。现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM。
bin:最主要的是编译器(javac.exe)
include:java和JVM交互用的头文件
lib:类库
jre:java运行环境
(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的)总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。
eclipse、idea等其他IDE有自己的编译器而不是用JDK bin目录中自带的,所以在安装时你会发现他们只要求你选中jre路径就ok了。
jvm是jre里头一个动态连接函数库,\jdk\jre一般用于运行java本身自带工具的程序,比如javac,等等。\jre用于运行用户编写的java程序。当然\jdk\jre也能运行用户编写的java程序。
bin\client 或者 bin\server 的jvm.dll:bin\client\jvm.dll运行用户编写的java程序, bin\server\jvm.dll用于运行jdk自带工具的程序,比如javac,等等。这就是为什么\jdk\jre比\jre多一个 bin\server的原因。
当一台机器上有多个jvm可选择的时候,jvm的选择步骤:
1)当前目录有没有jre目录(不准确),
2)父目录下的jre子目录
3)注册表HEKY_LOCAL_MACHINE\SoftWare\Java\Java Runtime Environment\
所以当运行的是jdk\bin\java.exe的时候,用的jre是bin的父目录jdk下面的jre\
运行java.exe找到了jre后有一个验证程序,验证jre和java.exe的版本是否一致,如果不一致则会发生错误
- 大小: 1.7 KB
分享到:
相关推荐
本文介绍了JDK、JRE和JVM之间的关系,并提供了相应的Java示例代码。 内容概要 本文档涵盖以下内容: JDK、JRE和JVM的概念和作用 JDK的组件和功能 JRE的组成和用途 JVM的作用和重要性 学到什么 通过阅读本文,您将...
网上摘录总结的关于jdk、jre、jvm的区别
一张图看懂JVM、JRE、JDK
Java中JDKJRE和JVM解析.doc
本文主要介绍了Java中的JDK、JRE、JVM的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
JDK(java Development Kit):java 的开发和运行环境,包括java 的开发工具和 jre,在程序员的电脑上当然要安装JDK; JRE(Java Runtime Environment):它是Java运行环境,包括,java 运行的所需的类库+JVM(java ...
详解JDK,JRE,JVM.md
我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译
我们必须明白JDK,JRE和JVM之间的差异.mp4
【Java面试题】JDK、JRE与JVM的区别
简示JDK_JRE_JVM的大小关系
主要介绍了java环境中的JDK、JVM、JRE详细介绍的相关资料,对于初学者还是有必要了解下,细致说明他们是什么,需要的朋友可以参考下
JDK,JRE,JVM区别与联系.pdf 学习资料 复习资料 教学资源
3.JDK、JRE、JVM的区别 3.1 Java为什么能跨平台,实现一次编写,多处运行? 1.编译器、调试器 JAVA编译器(javac.exe) JAVA编译器的作用是将(.java文件)编译成字节码文件,是最基本的开发工具。编译时首先读入java...
大数据必学Java基础(九):JDK,JRE,JVM的区别
29.027.JAVA基础教程_Java语言概述-JDK、JRE、JVM的关系(29).rar
初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解是Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也...
JDK Java SE Development kit(JDK) ...Java虚拟机,JRE包含JVM。JVM是运行java程序的核心虚拟机,还需要其他的类加载器,字节码校验器,以及大量的基础类库。JRM除了包含JVM之外,还包含运行java程序的其它环境支持。
学生做的,请见谅
java的开发工具集,顾名思义就是你做开发用的,其中来包括javac,也...所以jdk和jre的区别就度是一个用于开发,一个用于运行,联系就是他们都是java开发者所必备问的(除非你就像运行java程序,那么用jre就足够了)。