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日

相关文章

  • java实现轻轻松松控制台斗地主的示例代码

    如果要在Java程序中实现控制台斗地主游戏,可以按照以下步骤进行: 设计游戏规则:斗地主游戏的规则比较固定,需要设计玩家、牌组、出牌、判胜负等内容。 实现牌组:斗地主游戏使用的是一副扑克牌,需要先定义牌的种类和数量,然后随机洗牌,把牌分配给每个玩家和底牌。 实现玩家出牌:玩家需要根据游戏规则出牌,因此需要实现出牌规则,比如判断出牌是否符合规则,是否由上家出牌…

    Java 2023年5月26日
    00
  • Java详细讲解文件的读写操作方法

    Java详细讲解文件的读写操作方法 文件读取操作 在Java中,可以使用FileInputStream和BufferedInputStream,以及Reader类中的FileReader和BufferedReader类来读取文件。下面是一个读取TXT文件的示例代码: import java.io.*; public class FileReadDemo { …

    Java 2023年5月20日
    00
  • Form表单按回车自动提交表单的实现方法

    当用户在表单中输入完数据并按下回车键时,可以通过JavaScript实现自动提交表单。下面是一些实现方法: 方法1:jQuery实现 如果你正在使用jQuery库,可以使用以下代码实现表单自动提交: $(document).on("keydown", "form input", function (event) { i…

    Java 2023年6月15日
    00
  • SpringBoot整合JPA数据源方法及配置解析

    下面就来详细讲解SpringBoot整合JPA数据源方法及配置解析。 一、什么是JPA JPA(Java Persistence API)是Java持久化规范,是EJB 3.0规范的一部分,旨在为Java开发人员提供一个数据库无关的对象/关系映射标准,以便管理Java应用程序中的持久化数据。在JPA中,我们通过实体类来操作数据库,不再需要手写增删改查的SQL…

    Java 2023年5月20日
    00
  • 如何开发基于Netty的HTTP/HTTPS应用程序

    下面是开发基于Netty的HTTP/HTTPS应用程序的完整攻略: 1. 环境准备 JDK 1.8及以上版本 Maven 3.0及以上版本 Netty 4.1.32.Final及以上版本 2. 创建maven项目 使用Maven创建一个新的项目,添加Netty以及其他必要的依赖: <dependencies> <dependency>…

    Java 2023年6月1日
    00
  • 使用@JsonFormat的一个坑及解决

    使用@JsonFormat注解可以自定义将Java对象转换为JSON字符串时的日期格式,但是在使用过程中也存在一个坑点。具体攻略如下: 1.问题描述 我们在使用@JsonFormat注解时,想要将日期格式化为类似”yyyy-MM-dd HH:mm:ss.SSS”的字符串格式,于是我们在实体类上添加该注解: public class User { privat…

    Java 2023年5月26日
    00
  • maven打包时候修改包名称带上git版本号和打包时间方式

    按照要求,我会为你提供一个完整的Maven项目中如何在打包时修改包名称带上git版本号和打包时间的攻略。 概述: Maven利用pom.xml文件管理项目信息和依赖,pom.xml文件中通过使用插件来执行相关的动作操作。在这里,我们需要用到maven-jar-plugin插件来进行Maven项目的打包操作。通过重写 ${project.build.final…

    Java 2023年5月19日
    00
  • asp的程序能实现伪静态化的方法

    ASP是一种动态网页开发技术,通常需要通过服务器端动态生成HTML代码。对于某些站点,如果开启了伪静态,可以有效地提升网站的SEO表现,提高流量。本文将详细讲解ASP程序如何实现伪静态化,包含以下内容: 了解伪静态化的原理 伪静态化是指将动态生成的页面URL转化为静态的HTML文档。例如将”index.asp?id=1″转化为”index_1.html”。当…

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