搜索
首页JavaJava入门jdk和jre的区别
jdk和jre的区别May 25, 2020 pm 02:59 PM
jdkjre

jdk和jre的区别

jdk和jre的区别

1. 定义

JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。

JDK(Java Development Kit)又称J2SDK(Java2 Software Development Kit),是Java开发工具包,它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提 供了JVM和Runtime辅助包,用于解析class文件使其得到运行)。如果你下载并安装了JDK,那么你不仅可以开发Java程序,也同时拥有了运 行Java程序的平台。JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库 (rt.jar)。

推荐:《java学习

2. 区别

JRE主要包含:java类库的class文件(都在lib目录下打包成了jar)和虚拟机(jvm.dll);JDK主要包含:java类库的 class文件(都在lib目录下打包成了jar)并自带一个JRE。那么为什么JDK要自带一个JRE呢?而且jdk/jre/bin下的client 和server两个文件夹下都包含jvm.dll(说明JDK自带的JRE有两个虚拟机)。

记得在环境变量path中设置jdk/bin路径麽?老师会告诉大家不设置的话javac和java是用不了的。确实jdk/bin目录下包含了所有的命令。可是有没有人想过我们用的java命令并不是jdk/bin目录下的而是jre/bin目录下的呢?不信可以做一个实验,大家可以把jdk /bin目录下的java.exe剪切到别的地方再运行java程序,发现了什么?一切OK!(JRE中没有javac命令,原因很简单,它不是开发环境)那么有人会问了?我明明没有设置jre/bin目录到环境变量中啊?试想一下如果java为了提供给大多数人使用,他们是不需要jdk做开发的,只需 要jre能让java程序跑起来就可以了,那么每个客户还需要手动去设置环境变量多麻烦啊?所以安装jre的时候安装程序自动帮你把jre的 java.exe添加到了系统变量中,验证的方法很简单,去Windows/system32下面去看看吧,发现了什么?有一个java.exe。

3. 难点

如果安装了JDK,你的电脑就有两套JRE(JRE本身和JDK中的JRE),前面这套比后面那套少了Server端的Java虚拟机。

(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目录下的程序都很小,不大于29K,从这里我们可以得出一个结论。就是JDK里的工具几乎是用Java所编写,所以也是Java应用 程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于JDK目录下的那套JRE就是用来运行一般Java程序 的。

(2)如果一台电脑安装两套以上的JRE,谁来决定呢?这个重大任务就落在java.exe身上。java.exe的工作就是找到合适的JRE来运 行Java程序。java.exe依照以下的顺序来查找JRE:1)自己的目录下有没有JRE;2)父目录有没有JRE;3)查询注册表: [HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment]。所以java.exe的运行结果与你的电脑里面哪个JRE被执行有很大的关系。

(3)JDK-->JRE-->Bin目录下有两个文件夹:server与client,这是真正的jvm.dll所在。 jvm.dll无法单独工作,当jvm.dll启动后,会使用explicit的方法(就是使用Win32 API之中的LoadLibrary()与GetProcAddress()来载入辅助用的动态链接库),而这些辅助用的动态链接库(.dll)都必须位 于jvm.dll所在目录的父目录之中。因此想使用哪个JVM,只需要设置PATH,指向JRE所在目录下的jvm.dll。

4. 最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。

以上是jdk和jre的区别的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何在 Linux 中运行 jar 文件如何在 Linux 中运行 jar 文件Feb 20, 2024 am 10:40 AM

运行JAR文件的先决条件在Linux系统上运行JAR文件需要安装Java运行时环境(JRE),它是执行Java应用程序所需的基本组件,包括Java虚拟机(JVM)、核心类库等。许多主流Linux发行版,如Ubuntu、Debian、Fedora、openSUSE等,都提供了JRE包的软件库,方便用户进行安装。后文将详细介绍在流行的发行版上安装JRE的步骤。设置完JRE后,可以根据个人喜好选择使用命令行终端或图形用户界面来启动JAR文件。您的选择可能取决于对Linuxshell的熟悉程度和个人偏好

如何在 Windows 11 上安装 Java如何在 Windows 11 上安装 JavaApr 13, 2023 pm 09:22 PM

尽管每隔一段时间就会出现大量应用程序,但 Java 仍然是迄今为止最常用和最重要的编程语言之一。许多应用程序依赖于 Windows 操作系统上的 Java,更新它意味着通过为 Java 应用程序提供安全运行的稳定性和安全性来提高性能。您还可以在 Linux 和 macOS 平台上安装 Java。唯一的区别是每个平台的包/文件。现在,有了 Windows 11,是时候下载 Java,在今天的文章中,我们将带您完成在您的设备上安装它的简单步骤。我应该下载哪个版本的 Java?您下载的 Java 版本

java之JDK动态代理实例分析java之JDK动态代理实例分析Apr 30, 2023 pm 01:16 PM

1、说明Java中提供了一个动态代理类Proxy,Proxy并不是我们所说的代理对象的类,而是提供了一个创建代理对象的静态方法(newProxyInstance)来获取代理对象。2、实例publicclassHelloWorld{publicstaticvoidmain(String[]args){//获取代理对象ProxyFactoryfactory=newProxyFactory();SellTicketsproxyObject=factory.getProxyObject();proxyO

oracle数据库需要jdk吗oracle数据库需要jdk吗Jun 05, 2023 pm 05:06 PM

oracle数据库需要jdk,其原因是:1、当使用特定的软件或功能时需要包含在JDK中的其他软件或库;2、需要安装Java JDK才能在Oracle数据库中运行Java程序;3、JDK提供了开发和编译Java应用程序的功能;4、满足Oracle对Java函数的要求,以帮助实现和实现特定功能。

深度Linux系统安装JDK教程深度Linux系统安装JDK教程Feb 15, 2024 pm 12:36 PM

深度Linux系统是一款基于Linux内核的国产操作系统,具有稳定、安全、易用等特点,在深度Linux系统中,安装JDK(JavaDevelopmentKit)是开发Java应用程序的必要步骤,本文将详细介绍如何在深度Linux系统中安装JDK。安装步骤打开深度Linux系统的终端。使用命令行下载JDK安装包,命令如下:```shellsudoapt-getinstallopenjdk-11-jdk```等待下载完成后,系统会自动安装JDK。验证JDK是否安装成功,输入以下命令:```javaj

linux jdk目录在哪linux jdk目录在哪Mar 22, 2023 am 09:52 AM

linux jdk目录在bin目录下,具体查找方法是:1、通过“whereis java”命令找到javad的执行目录;2、通过执行文件找到链接文件;3、通过“ls -lrt /etc/alternatives/java”命令找到安装目录即可。

jdk怎么安装-jdk安装教程jdk怎么安装-jdk安装教程Mar 04, 2024 pm 05:10 PM

近期有很多小伙伴咨询小编jdk怎么安装,接下来就让我们一起学习一下jdk怎么安装的全部内容吧,希望可以帮助到大家。1、首先下载JDK安装文件,进入JDK安装界面,如图所示。2、单击“下一步”按钮,进入JDK自定义安装界面,如图所示。3、建议选择直接安装到默认目录,单击“下一步”按钮即可进行安装,如图所示。也可以单击“更改”按钮,自行选择安装目录。4、安装完毕后,弹出界面,单击“关闭”按钮即可,如图所示。上面就是小编为大家带来的jdk怎么安装的全部教程,希望对大家能够有所帮助哦。

Linux系统中jdk环境怎么配置Linux系统中jdk环境怎么配置May 12, 2023 am 09:31 AM

如下操作步骤为linux系统中部署jdk环境1.下载jdk安装包2.新建安装jdk文件夹(/usr/local/java/jdk)cd/usr/localmkdir/usr/local/javalocal目录下新建java目录cd/usr/local/javamkdir/usr/local/java/jdk新建jdk目录cd/usr/local/java/jdk3.上传jdk安装包到linux4.解压jdk安装包解压格式:tarzxvf压缩包名称后面的名称可以只输入一个首字母,然后使用Tab按键

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!