简单解释一下SDK、JDK、JRE、JVM之间的区别以及联系_sdk和jdk的关系-程序员宅基地

技术标签: JDK  JVM  计算机基础  SDK  JRE  

一、JDK与JRE


简单的说:

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,就可以正确运行Java应用程序。


1、为什么Sun要让JDK安装两套相同的JRE?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/C_TestMG/article/details/86241254

智能推荐

Dubbo 序列化-程序员宅基地

文章浏览阅读4.8k次,点赞3次,收藏4次。前言大家好,今天开始给大家分享 — Dubbo 专题之 Dubbo 序列化。在前一个章节中我们介绍了 Dubbo 路由规则之标签路由,其实现原理为:如果消费端传递标签则和配置的动态规则和静态规则进行匹配,如果消费端未传递标签则使用服务提供端的本地配置的静态标签和动态配置标签进行匹配。同时我们也例举了常见的使用场景并且进行了源码解析来分析其实现原理。有的小伙伴可以想知道 Dubbo 中远程调用数据传输是通过哪些方式进行数据的序列化呢?那么这个章节我们一起来讨论在我们的 Dubbo 中有哪些序列化方式以及性能_dubbo 序列化

C++错误 --不允许使用抽象类类型-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏4次。这个问题是因为你把抽象类实例化了,抽象类是类中包含一个或多个纯虚函数,这是被C++禁止的。那怎么办呢??---建议不要实例化抽象类,而是定义定该类指针,该指针可以指向子类,形成多态。..._不允许使用抽象类类型

[总结]虚拟主机独立IP与共享IP技术2_共享ip和独立ip设置a记录-程序员宅基地

文章浏览阅读1.3k次。[总结]虚拟主机独立IP与共享IP技术1_共享ip和独立ip设置a记录

ORA-06413: 连接未打开|Unable to open connection to “Oracle, Microsoft provider V1.0.5000.0“.-程序员宅基地

文章浏览阅读1.7k次。初入甲骨错难除,三天未解愧难当。绞尽脑汁无门去,谁知下页有解来。_ora-06413

关于SQLContext过期,SparkSession登场_sqlcontext 过期了-程序员宅基地

文章浏览阅读1.6k次。关于SQLContext过期问题。源码中解释道:spark2.0之后使用sparksession替代,不过仍然保留了SQLContext。那么他们两个有不同吗?这里只说一个重要的。在你使用SparkSession代替SQLContext的时候package SparkSqlimport org.apache.spark.sql.{DataFrame, SQL..._sqlcontext 过期了

使用VsCode开发Lua插件推荐(Lua)_vscode编写lua程序-程序员宅基地

文章浏览阅读3.7w次,点赞7次,收藏20次。在我看来能够跳转的Lua插件就是好插件,今天推荐的一款插件就是这么一款。通过Vscode插件搜索Lua (Lua Language Server coded by Lua),支持跳转定义、查询引用、代码检查、高亮等。下载好后即可使用。这里说一下设置代码检查配置。在settings.json配置"Lua.diagnostics.severity" : { "redefi..._vscode编写lua程序

随便推点

2022年CSP-J1 CSP-S1 第1轮初赛 报名指南_河北csp-j和csp-s报名-程序员宅基地

文章浏览阅读3.5k次。2022年CSP-J1 CSP-S1 第1轮初赛 报名指南_河北csp-j和csp-s报名

SQLite快速入门教程第三集_小布老师作品_小布老师 sqlite-程序员宅基地

文章浏览阅读732次。视频下载地址:http://jiyanet.com/read.php?tid=446_小布老师 sqlite

深入挖掘IOC、AOP以及Spring中的实现-程序员宅基地

文章浏览阅读54次。 Spring的功能是很强大的,在其“绝不发明自己认为好的轮子,而只发明自己认为不好的轮子”的指导思想下,通过充分实践了“一切实事求是、‘循证架构’的工作方式”的理论,基本上把轻量级的J2EE应用框架(如ORM、MVC等)进行了整合,并构架了一些常用的功能(如DAO),形成了一个功能强大的J2EE轻量级企业应用框架。  然而,或许是大家对Spring掌握得还不透彻的缘故吧,看到很多软件企业中用到的...

Java并发之Semaphore详解_java semaphore 使用详解-程序员宅基地

文章浏览阅读2.9w次,点赞4次,收藏25次。一、入题 Semaphore是一种基于计数的信号量。它可以设定一个阈值,基于此,多个线程竞争获取许可信号,做完自己的申请后归还,超过阈值后,线程申请许可信号将会被阻塞。Semaphore可以用来构建一些对象池,资源池之类的,比如数据库连接池,我们也可以创建计数为1的Semaphore,将其作为一种类似互斥锁的机制,这也叫二元信号量,表示两种互斥状态。它的用法如下: 二、_java semaphore 使用详解

Spring Boot 中文乱码解决-程序员宅基地

文章浏览阅读3.7k次。Spring Boot 中文乱码解决第一步,约定传参编码格式不管是使用httpclient,还是okhttp,都要设置传参的编码,为了统一,这里全部设置为utf-8第二步,修改application.properties文件增加如下配置:spring.http.encoding.force=truespring.http.encoding.charset=UTF-8spr..._spring boot 中文乱码

java|android加载src路径下面的图片文件_安卓开发获取图片的src-程序员宅基地

文章浏览阅读3.8k次。//我把a.jpg和MainActivity 放在同一个路径下面 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Context context = getApplicationContext();_安卓开发获取图片的src

推荐文章

热门文章

相关标签