iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >jdk与jre的区别
  • 548
分享到

jdk与jre的区别

2023-06-03 03:06:43 548人浏览 安东尼
摘要

对于java初学者来说,往往不懂区分jdk和jre的区别,实际上这两个东西差别很大的,有必要了解一下:简单的说jdk是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit

对于java初学者来说,往往不懂区分jdk和jre的区别,实际上这两个东西差别很大的,有必要了解一下:

简单的说jdk是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JDK就是Java Development Kit
JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。

如果安装了JDK,会发同你的电脑有两套JRE,一套位于 jre 另外一套位于 C:Program FilesJavaj2re1.4.1_01 目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:Program FilesJav a 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:Program FilesJava 目录下安装唯一的一套JRE。

JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java PC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Jav a应用程序。

1、为什么Sun要让JDK安装两套相同的JRE?这是因为JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在 libtools.jar 里。从下面例子可以看出,先将tools.jar改名为tools1.jar,然后运行javac.exe,显示如下结果: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac /Main 这个意思是说,你输入javac.exe与输入 java -cp c:jdklibtools.jar com.sun.tools.javac.Main 是一样的,会得到相同的结果。从这里我们可以证明javac.exe只是一个包装器(Wrapper),而制作的目的是为了让开发者免于输入太长的指命。而且可以发现lib目录下的程序都很小,不大于2 9K,从这里我们可以得出一个结论。就是JDK里的工具几乎是用Java所编写,所以也是Java应用程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于C:Program FilesJava目录下的那套JRE就是用来运行一般Java程序用的。

2、如果一台电脑安装两套以上的JRE,谁来决定呢?这个重大任务就落在java.exe身上。Java.exe的工作就是找到合适的JRE来运行Java程序。 Java.exe依照底下的顺序来查找JRE:自己的目录下有没有JRE;父目录有没有JRE;查询注册表: [HKEY_LOCAL_MacHINESOFTWAREJavaSoftJava 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。

[@more@]

--结束END--

本文标题: jdk与jre的区别

本文链接: https://www.lsjlt.com/news/232661.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • jdk与jre的区别
    对于java初学者来说,往往不懂区分jdk和jre的区别,实际上这两个东西差别很大的,有必要了解一下:简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit ...
    99+
    2023-06-03
  • java中jdk和jre的区别是什么
    JDK(Java Development Kit)和JRE(Java Runtime Environment)是Java开发中常用的...
    99+
    2023-08-25
    java
  • JVM、JRE、JDK有什么区别和联系
    这篇文章主要介绍“JVM、JRE、JDK有什么区别和联系”,在日常操作中,相信很多人在JVM、JRE、JDK有什么区别和联系问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JVM、JRE、JDK有什么区别和联系...
    99+
    2023-06-17
  • 【Java】JDK、JRE、JVM详细解读(区别和联系)
    【Java】JDK和JRE的区别和联系 文章目录 【Java】JDK和JRE的区别和联系1. 介绍2. 详细解析2.0 先说说安装2.1 JDK2.2 JRE2.3 JVM2.4 Java可以...
    99+
    2023-09-13
    jvm java 开发语言
  • 比较 JDK 8 与 JDK 17 的区别
            随着技术的不断发展,Java 也在不断地推出新版本以满足开发者的需求。在本文中,我们将比较两个重要版本:JDK 8 和 JDK 17。JDK 8 是 Java 发展史上的一个里程碑,引入了很多新特性,如 Lambda 表达式...
    99+
    2023-09-04
    java jvm 开发语言
  • JDK与之间的差异 JRE比 JVM
    今天,我们将讨论JDK vs JRE与JVM的介绍。什么是Java开发工具包(JDK)?JDK代表用于开发Java applet和应用程序的Java Development Kit。它基本上是一个软件开发环境。JDK包括Java运行时环境(...
    99+
    2023-06-05
  • 怎么深度剖析JDK和JRE以及JVM三者的区别
    本篇文章为大家展示了怎么深度剖析JDK和JRE以及JVM三者的区别,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。你对jdk,jre,jvm三者的区别和联系是否了解,这里和大家分享一下, j2sdk(...
    99+
    2023-06-17
  • jdk和jre的关系
    JDK(Java Development Kit)和JRE(Java Runtime Environment)是Java开发和运行的...
    99+
    2023-09-15
    jdk
  • JDK,JRE,JVM的关系是什么
    今天小编给大家分享一下JDK,JRE,JVM的关系是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。JDK是SUN公司发布...
    99+
    2023-06-17
  • JDK 8 和 JDK 17 的区别和新特性
    JDK 8 和 JDK 17 的区别和新特性 背景介绍JDK 8 的新特性JDK 17 的新特性JDK 8 和 JDK 17的代码对比示例Lambda表达式Pattern Matching for instanceof新增的库新的集...
    99+
    2023-08-17
    java jvm 开发语言
  • Java JDK与cglib动态代理有哪些区别
    本篇内容主要讲解“Java JDK与cglib动态代理有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java JDK与cglib动态代理有哪些区别”吧!一、说明sp...
    99+
    2023-07-05
  • eclipse配置jdk和jre的方法是什么
    在Eclipse中配置JDK和JRE的方法是:1. 打开Eclipse,在菜单栏中选择“Window”(窗口)-> “Prefere...
    99+
    2023-09-21
    eclipse jdk jre
  • 解析动态代理jdk的Proxy与spring的CGlib(包括区别介绍)
    目录1. 为什么要使用动态代理?2.JDK Proxy 动态代理面向接口的动态代理3.CGlib动态代理原理区别:两个动态代理的区别1. 为什么要使用动态代理? 动态代理:在不改变原...
    99+
    2024-04-02
  • 如何理解JRE和JVM的区别及有什么联系
    这篇文章将为大家详细讲解有关如何理解JRE和JVM的区别及有什么联系,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。你对JRE和JVM的概念是否熟悉,这里和大家分享一下两者的区别,所有的Jav...
    99+
    2023-06-17
  • vue与angular的区别
    vue与angular的区别有:angular的学习成本高、比较复杂,而vue本身提供的API相对简单、直观。在性能上,angular比vue要慢,因为angular依赖对数据做脏检查,所以Watcher越多越慢,而vue使用基于依赖追踪的...
    99+
    2024-04-02
  • python2与python3的区别
    说明:标注?????是暂时没遇到且看不懂的,做个标记。常见的区别有print,range,open,模块改名,input,整除/,异常 except A as B 为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。过...
    99+
    2023-01-31
    区别
  • c++中=与==的区别
    c++ 中 = 与 == 的区别:= 为赋值运算符,用于变量赋值;== 为相等比较运算符,用于比较操作数是否相等。 C++ 中 = 与 == 的区别 在 C++ 中,= 和 == 是两...
    99+
    2024-04-26
    c++
  • shtml与html的区别
    SHTML(Server Side HTML)与HTML(Hypertext Markup Language)的区别主要在于它们的处...
    99+
    2023-09-09
    shtml
  • jsp与js与jquery的区别
    jsp与js与jquery的区别:1、js是javascript文件的文件后缀。2、jquery 是一个函数库,是基于javascript的。3、jsp是jsp网页文件的后缀。js是javascript文件的文件后缀,其实就像文本文档a.t...
    99+
    2024-04-02
  • py2与py3的区别
    Guido(Python之父,仁慈的独裁者)在设计 Python3 的过程中,受一篇文章 “Python warts” 的影响,决定不向后兼容,否则无法修复大多数缺陷。---摘录自《流畅的Python》 你可能从来没有听说过学 Java 的...
    99+
    2023-01-31
    区别
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作