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

yizhihongxing

下面是关于 "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日

相关文章

  • JAVA基础类库之String类,StringBuffer类和StringBuilder类

    JAVA基础类库之String类,StringBuffer类和StringBuilder类攻略 在JAVA中,String、StringBuffer、StringBuilder这三种类都是用来处理字符串的。这篇攻略将详细说明它们的区别和用法。 String类 String类是不可变的,它代表一个字符串序列(字符数组),一旦创建,就不能再对其进行修改。因为不可…

    Java 2023年5月27日
    00
  • 详解Spring循环依赖的解决方案

    针对“详解Spring循环依赖的解决方案”的完整攻略,我为大家梳理了以下内容: 什么是Spring循环依赖? Spring容器中,当两个或多个bean之间形成相互依赖关系时,就会产生循环依赖。比如:A依赖B,B依赖C,C依赖A,这时就会导致循环依赖。 Spring循环依赖的解决方案 为了解决Spring容器中的循环依赖问题,Spring提供了以下三种解决方法…

    Java 2023年5月31日
    00
  • mybatis动态SQL if的test写法及规则详解

    MyBatis动态SQL if的test写法及规则详解 概述 MyBatis作为优秀的ORM框架,支持动态SQL语句的编写,其中if标签是最为基础和灵活的标签,可以通过if标签来很好地实现条件语句。本文将详细讲解MyBatis中if标签的test写法及规则。 if标签 if标签用于判断是否满足某个条件,当条件为true时会执行if标签下的SQL语句,当条件为…

    Java 2023年5月20日
    00
  • Java中的字节流和字符流有什么区别?

    在Java标准库中,字节流和字符流是两个很重要的概念。字节流和字符流的区别在于流的传输基本对象不同。字节流主要处理byte类型的数据;而字符流主要处理字符型数据,即16位Unicode字符。 字节流的主要基类是InputStream和OutputStream,字符流的主要基类是Reader和Writer。下面我们详细介绍Java中的字节流和字符流的区别: 字…

    Java 2023年4月27日
    00
  • 详细总结Java创建文件夹的方法及优缺点

    详细总结Java创建文件夹的方法及优缺点 在Java中,创建文件夹是一个常见的操作,无论是在后端开发还是在桌面应用程序中都很常用。本文将详细总结Java创建文件夹的方法及优缺点,包括三种方法。 方法一:使用File类的mkdir() File类是Java中的一个常用文件操作类,其中的mkdir()方法可以用于创建一个新的文件夹。 File file = ne…

    Java 2023年5月20日
    00
  • Java面试岗常见问题之ArrayList和LinkedList的区别

    下面是如何回答“Java面试岗常见问题之ArrayList和LinkedList的区别”的完整攻略。 问题背景 Java面试中经常会出现有关集合类的问题,尤其是ArrayList和LinkedList。这两个集合类是Java中常见的列表实现,虽然他们都实现了List接口,但是在使用中有很多区别。下面就是有关ArrayList和LinkedList的区别问题的…

    Java 2023年5月26日
    00
  • Android图片的Base64编码与解码及解码Base64图片方法

    针对这个话题,以下是详细讲解“Android图片的Base64编码与解码及解码Base64图片方法”的完整攻略。 什么是Base64编码 Base64编码是一种用于将二进制数据转为文本数据的编码方式,主要用途是将数据在网络上进行传输,例如在网页中展示图片等。 如何在Android中进行Base64编码 在Android中,我们可以使用Base64类进行Bas…

    Java 2023年5月20日
    00
  • Tomcat之web应用的目录组成结构_动力节点Java学院整理

    以下是详细的攻略。 1. 概述 在使用Tomcat进行Web开发时,每个Web应用程序都有特定的目录结构。在这个目录结构中,存放了Web应用程序相关的文件,包括Web应用程序的资源、配置文件、class文件、静态文件等。在进行Web应用的开发和部署时,了解这些文件所在的目录结构是非常重要的。 2. 目录结构 在Tomcat中,每个Web应用程序都必须有一个独…

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