每天学Java!一分钟了解JRE与JDK
作者:lijiao 发布时间:2021-06-13 11:52:41
Java的源代码是以*.java的纯文本文件,可以使用任何文本编辑器来进行编写,但是这个源代码是无法执行的。执行源代码的这个任务就需要JDK和JRE。
JDK是Java语言的开发包,它可以将*.java结尾的文件编译为可以执行的Java程序。那么,有了可以执行的Java程序,则需要一个JVM才可以将这个Java程序运行起来。而Java运行环境,也就是JRE中包含了JVM。JVM就是Java的虚拟机。最后,JDK中包含了JRE。有了这样一个逻辑基础,下面,我们来分别认识JRE和JDK.
我们先来看一下JRE。JRE是英文Java Runtime Environment的缩写,是指Java运行环境。它是面向Java程序的使用者,而不是开发者。它是运行Java程序所必须的环境的集合,包含了JVM标准、实现及Java核心类库。它仅能够完成Java的运行,而无法对Java进行编译或者调试。JRE的地位就像是一台PC电脑一样,我们编写的Windows32或者Windows64应用程序需要操作系统帮助我们运行。同样地,我们编写的Java程序也需要JRE才能运行。电脑只有安装了JRE,才能够正确运行Java应用程序。JRE有独立的版本,如果一个用户仅需要运行Java程序,那么他只需要安装一个JRE就可以了。并且这套JRE一定是出现在 C:\Program Files\Java 目录下。
我们再来看JDK。JDK是英文Java Development Kit的缩写,是Java语言的软件开发工具包。它是面向Java开发者发布的Java套件。JDK包含的基本组件包括:编译器、jar打包工具、Javadoc文档生成器、Debug调试器、头文件生成器、反汇编器、监控工具等。JDK中包含了一个完成的JRE。所以说,如果安装了JDK,就不必再次安装JRE。如果你的电脑同时安装了JDK和JRE,那么你就会发现你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\jre1.5.0_15 目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Java 目录下的JRE。
最后,我们顺带说一下JVM。JVM是Java的虚拟机,是英文Java Virtual Machine的缩写。它是整个Java实现跨平台最核心的部分,所有的Java程序都会首先被编译成.class的类文件,这种类文件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接地与操作系统交互,由虚拟机将程序解释给本地系统执行。


猜你喜欢
- 1.类加载<1>.父子类执行的顺序1.父类的静态变量和静态代码块(书写顺序)2.子类的静态变量和静态代码块(书写顺序)3.父类的
- 1.下载AndroidStudioAndroidStudio官网下载地址:http://developer.android.com/intl
- 1.Android 加载https请求的网页的时候 打不开当load有ssl层的https页面时,如果这个网站的安全证书在Android无法
- 前提首先,我们肯定要在Application里面注册一个CrashHandler,监听应用crashpublic class TestApp
- 一、Shiro简介:Apache Shiro是一个Java的安全(权限)框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在J
- 在多线程编程中,最简单的方法,无非就是利用 AfxBeginThread 来创建一个工作线程,看一下这个函数的说明:CWinTh
- 一: Environment.StackTrace可能我们看到最多的就是catch中的e参数,里面会有一个StackTrace,然后不可否认
- 以前用序列化都是一些方法需要才实现的,后来业务需求要深拷贝才去研究。参阅了别人博客得出一些总结。序列化是为了把Java对象转化为字节序列(字
- 本文实例为大家分享了Unity3D选择本地图片并加载的具体代码,供大家参考,具体内容如下①找到System.Windows.Forms.dl
- 这篇文章主要介绍了SpringBoot 使用Mybatis分页插件实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- 本文实例总结了Android实现屏幕旋转方法。分享给大家供大家参考。具体如下:在介绍之前,我们需要先了解默认情况下android屏幕旋转的机
- 因为在准备讲Maven用Maven Helper插件的时候,在网上学习,发现资料很少,我就把自己研究的配置分享给大家!!IDEA(本人用的2
- 饿汉式饿汉式:类加载就会导致该单实例对象被创建// 问题1:为什么加 final// 问题2:如果实现了序列化接口, 还要做什么来防止反序列
- Java的动态绑定所谓的动态绑定就是指程执行期间(而不是在编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。java继承
- import android.provider.Settings.Secure;private String android_id = Se
- 本文实例讲述了java方法重写,分享给大家供大家参考。具体分析如下:一、方法的重写概述:1、在子类中可以根据需要对从基类中继承来的方法进行重
- 一、需求场景有时候我们需要在项目中使用一些静态资源文件,比如城市信息文件 countries.xml,在项目启动后读取其中的数据并初始化写进
- JPA是什么? JPA(Java Persistence API)是Sun官方提出的Java持久化规范. 为Java开发人员提供了一种对象/
- 五子棋AI算法也算是一个典型的游戏AI算法,一些棋类的AI算法都可以参考实现,下面是Java实现代码棋盘抽象接口import java.ut
- MybatisPlus 给我们提供了更加强大的代码生成器MyBatisPlus 在3.0.3版本之前使用代码生成器因为存在默认依赖,所以不需