jdk与jre的区别 很形象,很清晰,通俗易懂

下面是关于 "JDK与JRE的区别" 的详细讲解,希望对你有所帮助。

JDK与JRE的概念

在理解JDK与JRE的区别之前,我们先来简要了解一下这两个概念:

  • Java Development Kit(JDK)是Java开发包,包含了Java的核心类库、编译器javac、JVM调试器jdb等开发工具,以及其他一些附属工具。

  • Java Runtime Environment(JRE)是Java运行时环境,包含了Java虚拟机JVM和Java类库等运行所必需的组件,但不包含开发工具。

简单来说,JDK是JRE的补充,它不仅包含了运行Java程序所必需的组件,还包含了开发Java程序所需的工具。

区别

JDK与JRE的主要区别在于JDK包含了JRE,同时还额外提供了一些开发工具。下面具体来看一下关于JDK与JRE的区别:

  • JDK包含JRE,在你安装JDK的时候,就已经包含了JRE。

  • JDK包含开发工具,而JRE不包含。比如javac编译器可以将Java源代码编译成字节码,而javadoc可以从源代码生成文档等等。

  • JRE只可以运行Java程序,而JDK可以编写和运行Java程序。如果你想开发Java应用程序,那么你需要安装JDK,如果只是想运行Java程序,那么JRE就可以满足你的需求。

示例

下面通过两个示例,进一步说明JDK与JRE的区别。

示例1:编译Java程序

假设我们有一个HelloWorld.java的Java源代码文件,想要将它编译成字节码文件HelloWorld.class。那么我们需要使用JDK提供的javac命令行工具,示例如下:

$ javac HelloWorld.java

上述命令会将HelloWorld.java编译成HelloWorld.class文件,如果没有安装JDK,那么就无法使用javac命令,从而不能完成编译任务。

示例2:运行Java程序

假设我们已经将HelloWorld.java编译成了HelloWorld.class文件,并想要运行这个Java程序。我们可以使用JRE提供的java命令行工具,示例如下:

$ java HelloWorld

上述命令会运行HelloWorld程序,如果没有安装JRE,那么就无法使用java命令,从而不能运行Java程序。

总结

JDK与JRE的区别在于JDK是面向Java开发的,包含了JRE和一些开发工具,而JRE仅面向于Java运行,只包含了运行Java所需的组件。如果你要开发Java应用程序,那么你需要安装JDK;如果你只是要运行Java程序,那么JRE就可以满足你的需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jdk与jre的区别 很形象,很清晰,通俗易懂 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • 可视化Swing中JTable控件绑定SQL数据源的两种方法深入解析

    以下是“可视化Swing中JTable控件绑定SQL数据源的两种方法深入解析”的完整攻略: 一、JTable控件绑定SQL数据源的必要性分析 JTable控件是Swing框架中常用的数据表格控件,而SQL是大型数据存储和管理的主要方式之一,因此在可视化Swing程序中,将JTable控件与SQL数据源进行绑定,可以实现直接从数据源向JTable中加载数据,也…

    Java 2023年5月20日
    00
  • JavaScript面向对象三个基本特征实例详解【封装、继承与多态】

    JavaScript面向对象三个基本特征实例详解 在JavaScript中,面向对象编程是一种常用的编程方式,它主要依靠三个基本特征:封装、继承和多态。下面将分别对它们进行详细的说明。 封装 封装是指将数据和行为封装在一个对象中,并对外部提供公共方法进行访问。 下面是一个使用封装的示例: class Person { constructor(name, ag…

    Java 2023年5月23日
    00
  • 详解JAVA中转义字符

    当我们需要在Java中表示一些特殊含义的字符时,会用到转义字符,也就是用一个反斜杠(\)将特殊字符进行转义。Java中转义字符的使用可以大大丰富字符串的表达能力,让我们来详解一下。 转义字符的常见用法 在Java中,转义字符是以反斜杠(\)开头,后面紧跟着代表特殊含义的字符。下面是Java中经常用到的转义字符及其对应的含义: \n:换行符 \t:制表符 \’…

    Java 2023年5月27日
    00
  • Java语言通过三种方法实现队列的示例代码

    下面是关于“Java语言通过三种方法实现队列”的详细攻略: 一、队列的定义 在计算机科学中,队列是一种特殊的线性数据结构,它只允许在一端进行插入操作,在另一端进行删除操作。在队列中,进行插入操作的一端被称为队尾,进行删除操作的一端被称为队头。 二、常见的队列实现方法 实现队列的方法有很多,其中比较常见的包括: 1、使用数组实现队列 使用数组来实现队列,可以通…

    Java 2023年5月18日
    00
  • Java 实现滑动时间窗口限流算法的代码

    Java 实现滑动时间窗口限流算法的代码,可以通过以下步骤实现: 选择计数器在实现滑动时间窗口限流算法之前,我们需要选择一个计数器,通常情况下,我们会选择计数器的实现方式为Redis实现自增操作。 设置滑动时间窗口的大小在选择计数器后,需要设置滑动时间窗口的大小。滑动时间窗口的大小指的是,在多长时间内进行访问限制。例如,我们可以设置时间间隔为1分钟。如果在1…

    Java 2023年5月19日
    00
  • 解决idea报错 Connot resolve column 的问题

    针对解决idea报错 “Cannot resolve column” 的问题,以下是一份完整攻略。 1. 问题描述 在使用idea进行开发时,有时会出现类似于以下的报错信息: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column ‘user_id’ in ‘fiel…

    Java 2023年5月20日
    00
  • java servlet获得客户端相关信息的简单代码

    好的。为了获得客户端相关信息,需要使用HTTP请求头中的一些信息。下面是获取客户端相关信息的简单代码及详细的攻略。 1.获取客户端IP地址 String ipAddress = request.getHeader("X-Forwarded-For"); if (ipAddress == null || ipAddress.length()…

    Java 2023年6月15日
    00
  • 微信小程序如何保证每个页面都已经登陆详解

    微信小程序如何保证每个页面都已经登陆是一个很重要的问题。为了解决这个问题,我们需要通过以下几个步骤实现: 在登录界面获取用户的openid和session_key。当用户完成登录操作时,我们需要把获取到的openid和session_key存储到本地缓存中。 wx.login({ success(res) { if (res.code) { // 发起网络请…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部