jdk、jre、jvm有什么区别?
简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\j2re1.4.1_01 目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Jav a 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。 JRE的地位就象一台PC机一样,我们写好的 Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java PC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Jav a应用程序。 1、为什么Sun要让JDK安装两套相同的JRE?这是因为JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在 \lib\tools.jar 里。从下面例子可以看出,先将tools.jar改名为tools1.jar,然后运行javac.exe,显示如下结果: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac /Main 这个意思是说,你输入javac.exe与输入 java -cp c:\jdk\lib\tools.jar com.sun.tools.javac.Main 是一样的,会得到相同的结果。从这里我们可以证明javac.exe只是一个包装器(Wrapper),而制作的目的是为了让开发者免于输入太长的指命。而且可以发现\lib目录下的程序都很小,不大于2 9K,从这里我们可以得出一个结论。就是JDK里的工具几乎是用Java所编写,所以也是Java应用程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于C:\Program Files\Java目录下的那套JRE就是用来运行一般Java程序用的。 2、如果一台电脑安装两套以上的JRE,谁来决定呢?这个重大任务就落在java.exe身上。Java.exe的工作就是找到合适的JRE来运行 Java程序。 Java.exe依照底下的顺序来查找JRE:自己的目录下有没有JRE;父目录有没有JRE;查询注册表: [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment] 所以java.exe的运行结果与你的电脑里面哪个JRE被执行有很大的关系。 3、介绍JVM JRE目录下的Bin目录有两个目录:server与client。这就是真正的jvm.dll所在。 jvm.dll无法单独工作,当jvm.dll启动后,会使用explicit的方法(就是使用Win32 API之中的LoadLibrary()与GetProcAddress()来载入辅助用的动态链接库),而这些辅助用的动态链接库(.dll)都必须位于jvm.dll所在目录的父目录之中。因此想使用哪个JVM,只需要设置PATH,指向JRE所在目录底下的jvm.dll。
jdk、jre、jvm有什么区别?相关推荐
- JDK,JRE,JVM区别与联系
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...
- AJPFX关于JDK,JRE,JVM的区别与联系
很多朋友可能跟我一样,对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天我们来整理下三者的关系.JDK : Java Development ToolKit(Java开发工具包). ...
- [马士兵] 一. 初识JAVA 20. 反编译工具的使用 21. 本章最后一段代码 22. 扩展面试题: JDK, JRE, JVM区别
20. 反编译工具的使用 编译 源代码----->class 反编译 class---->源代码 反编译工具 jd-gui.exe 21. 本章最后一段代码 public class Hi ...
- jdk jre jvm 关系
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...
- Path环境变量是什么?有什么用?怎么工作?JDK,JRE,JVM,集成开发工具是什么?有什么用?怎么工作?JDK安装包文件结构?有必要设置Path环境变量?Eclipse和IDEA开发工具的运作
简介 本文主要讲述,Path环境变量是什么?有什么用?怎么工作的?JDK,JRE,JVM,集成开发工具是什么?有什么用?怎么工作的?JDK安装包文件结构?有没有必要设置Path环境变量?Eclip ...
- java实验原理和图例_图例解析JDK,JRE,JVM概念及使用
本文向大家简单介绍一下JDK,JRE,JVM概念及用法,为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是安装的一部分.所以,在JDK的安装目录下有一个名为jre的目录,用于存放JRE文 ...
- 名词解释 JDK JRE JVM
名词解释 JDK JRE JVM JRE JRE: Java Runtime Environment JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库.是使用java语言编写 ...
- jdk jre jvm的关系
http://blog.csdn.net/gaopeng0071/article/details/9914683 JDK : Java Development ToolKit(Java开发工具包).J ...
- JDK/JRE/JVM之间的关系
> JDK Java Development ToolKit(Java开发工具包). JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆J ...
- jdk,jre,jvm的包含关系
jdk,jre,jvm的包含关系 他们三个是包含关系 jdk包含jre,jre包含jvm jdk(Java Development ToolKit):java开发工具包 jre(Java Runtim ...
最新文章
- 力控报警转储 mysql_力控ODBC转储说明.pdf
- 树莓派应用实例3:环境光照强度测量
- spring boot整合spring5-webflux从0开始的实战及源码解析
- C++中三种正则表达式比较(C regex,C ++regex,boost regex)
- 公钥和私钥怎么生成_科普 | Eth2 验证者如何生成和保护取款密钥
- TensorFlow4-常量和变量及TensorBoard使用
- OpenShift 4之实现一个基于Gogs+Nexus+Sonarqube的Jenkins CI/CD Pipeline
- SQL Server 查询性能优化——覆盖索引(一)
- ExtJs TreePanel使用TreeLoader在IE下无法正常加载显示的解决方法
- 移动宽带连接不上mysql_MySQL Workbench 6.2.4 下载 因为移动网络打不开官方也可能是国内网络问题 备用自己...
- flashcs3java_Flash CS3组件开发图文教程
- unity 引用using 空间 变量声明
- GDB调试的一系列博客
- 《数字图像处理》实验三
- python怎么算二元一次方程_利用Python求解二元一次方程
- TCL语言语法简介(上)
- 网络安全-点击劫持(ClickJacking)的原理、攻击及防御
- 64位系统和32位系统区别
- SAP-ABAP 读取billing document以及其它订单附件的实例(GOS)
- 我的世界服务器自定义附魔外挂,我的世界怎么用命令方块刷自定义附魔神器
热门文章
- Nature Microbiology:火眼金睛,肠道菌群绝对定量分析擒“真凶”!
- 测序发展史,150年的风雨历程 (第二版)
- python中使用squarify包可视化treemap图:treemap将分层数据显示为一组嵌套矩形,每一组都用一个矩形表示,该矩形的面积与其值成正比、自定义设置每一个数据格的颜色
- R语言vtreat包的mkCrossFrameCExperiment函数交叉验证构建数据处理计划并进行模型训练、通过显著性进行变量筛选(删除相关性较强的变量)、构建多变量模型、转化为分类模型、模型评估
- R语言Eta squared计算实战:Eta squared表示可以用模型中给定的变量解释的方差的比例、拟合方差分析模型(two-way ANOVA)、计算Eta Squared
- R语言关系操作符:>、<=、!=、>=、==、
- Python编码实现冒泡排序
- 计算机英语unit,计算机专业英语Unit 7
- 【论文笔记】APPLYING DEEP LEARNING TO ANSWER SELECTION: A STUDY AND AN OPEN TASK
- k2677场效应管参数引脚_常用功率场效应管参数大全