相信大多数java初学者被这些概念搞蒙过,它们之间到底有什么区别,又有什么联系呢?下面我将一一解开大家心中的谜团。

首先,给大家解释一下这些概念:

1、SDK(Software DevelopKit,软件开发工具包)

用于帮助开发人员的提高工作效率。各种不同类型的软件开发,都可以有自己的SDK。Windows有WindowsSDK,DirectX 有 DirectX 9SDK,.NET开发也有Microsoft.NET FrameworkSDK。JAVA开发也不含糊,也有自己的Java SDK。

2、JDK

Java SDK最早叫JavaSoftware Develop Kit,后来改名为JDK,即Java DevelopKit。JDK作为Java开发工具包,主要用于构建在Java平台上运行的应用程序、Applet 和组件等。

3、JRE(Java RuntimeEnvironment,Java运行环境),

也就是Java平台。所有的Java程序都要在JRE下才能运行。

4、JVM(Java VirtualMachine,Java虚拟机)

是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运

行。使用JVM就是为了支持与操作系统无关,实现跨平台。

接下来,我将按照大家接触这些概念的先后顺序以问答的形式解答大家心中的疑惑。

当我们学习了一定的java基础知识后,开始上机实践的时候,相信大家首先接触到的应该是JDK,于是我们在电脑上安装了JDK,而且也能正常运行。但是对于有一定基础我们,马上脑海中就出现一个问题:

问题一:JDK不是用java编写的嘛,而我们知道所有的Java程序都要有JVM才能运行,但我们并没有安装JVM呀,为什么它却可以运行呢?

JDK的工具是Java程序,也需要JRE才能运行。为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是安装的一部分。所以,在JDK的安装目录下有一个名为jre的目录,用于存放JRE文件。而JAVA虚拟机JVM是属于JRE的,所以我们的JDK可以运行。

随着我们学习的深入,我们很快接触了一个一个先进的软件——Eclipse,那么,问题又出来了:

问题二:Eclipse是干什么的?

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

eclipse classic 是eclipse的标准版,也就是eclipse SDK。

问题三:Eclipse IDE和 eclipse SDK有什么区别?

eclipse的标准版叫eclipse SDK,而安装了一些插件(例如:C/C++开发的插件CDT)之后,就变成了Eclipse IDE(Integrated DevelopmentEnvironment,集成开发环境)。

问题四:安装了Eclipse,必须安装JDK才能运行吗?

答案是否定的,Eclipse标准版中包含JRE,所以它可以运行。

问题五:既然安装eclipse,不是必须安装JDK,那么我们为什么要安装JDK?

相信有一定基础的大家一定知道,java的执行过程是先把java编译成class字节码,然后由虚拟机解释执行!而将java编译成class文件,必须用到JDK。所以如果你要从事java开发,就必须要安装JDK(当然,JDK不仅仅有这一个功能)。

当我们到这一步的时候,我们已经可以用Eclipse开发java程序了。但是,我们知道,Eclipse功能很强大,不仅可以开发java程序。如果我想用Eclipse开发C程序,该怎么办呢?(具体搭建过程:Windows 7安装Eclipse 3.7搭建C/C++开发环境)

首先,我们必须安装能将C文件编译成exe可执行文件的软件,软件大家安装MinGW。

问题六:为什么想开发C程序,我们必须安装MinGW等编译软件?

其实,这个同开发java的道理一样,我们要想开发java程序,必须安装能将java编译成class文件的JDK,那么开发C程序呢,我们必须也安装一个类似这样的软件,不同的是,MinGW等是将C文件编译成exe文件。

问题七:有了MinGW,我们是不是就可以用Eclipse开发C程序了呢?

答案是否定的,安装了MinGW,只能说明你的电脑可以编译C文件,但是这跟我Eclipse有什么关系呢?所以,要想开发C程序,必须在Eclipse中安装相应的插件——CDT(C/C++Development Tooling)。

问题八:为什么用Eclipse开发C程序需要安装CDT,而开发java程序却不需要安装什么插件呢?

其实,用Eclipse开发java程序,也是需要插件的,它就是——JDT。那为什么我们没有安装就可以开发java程序了呢?原来,安装Eclipse标准版时,默认就安装了JDT插件,所以不需要我们自己安装就能使用。

相信,当大家看到这里的时候,已经对这些概念以及它们之间的联系有了一定的了解。最后祝大家学习旅途顺利。

PS:不当之处,还望大家指教!

SDK、JDK、JRE、JVM、JDT、CDT等之间的区别与联系相关推荐

  1. JDK,JRE,JVM区别与联系

    很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...

  2. jdk jre jvm 关系

    很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...

  3. AJPFX关于JDK,JRE,JVM的区别与联系

    很多朋友可能跟我一样,对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天我们来整理下三者的关系.JDK : Java Development ToolKit(Java开发工具包). ...

  4. JDK/JRE/JVM之间的关系

    > JDK Java Development ToolKit(Java开发工具包). JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆J ...

  5. java实验原理和图例_图例解析JDK,JRE,JVM概念及使用

    本文向大家简单介绍一下JDK,JRE,JVM概念及用法,为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是安装的一部分.所以,在JDK的安装目录下有一个名为jre的目录,用于存放JRE文 ...

  6. day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格

    1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...

  7. Path环境变量是什么?有什么用?怎么工作?JDK,JRE,JVM,集成开发工具是什么?有什么用?怎么工作?JDK安装包文件结构?有必要设置Path环境变量?Eclipse和IDEA开发工具的运作

    简介 ​ 本文主要讲述,Path环境变量是什么?有什么用?怎么工作的?JDK,JRE,JVM,集成开发工具是什么?有什么用?怎么工作的?JDK安装包文件结构?有没有必要设置Path环境变量?Eclip ...

  8. Java修炼之凡界篇 筑基期 第01卷 入门 第04话 JDK JRE JVM

    JDK JRE JVM JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK), 在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里 ...

  9. 名词解释 JDK JRE JVM

    名词解释 JDK JRE JVM JRE JRE: Java Runtime Environment JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库.是使用java语言编写 ...

  10. jdk jre jvm的关系

    http://blog.csdn.net/gaopeng0071/article/details/9914683 JDK : Java Development ToolKit(Java开发工具包).J ...

最新文章

  1. Windows 10:开机显示C:\WINDOWS\system32\config\systemprofile\Desktop不可用 的解决方法
  2. 一篇文章带你飞,轻松弄懂 CDN 技术原理
  3. Oracle RESETLOGS 和 NORESETLOGS 区别说明
  4. 2. 托管对象数据模型的基本知识(Core Data 应用程序实践指南)
  5. 零基础学Python(第二章 中文编码)
  6. 算法竞赛入门经典(第二版) | 例题5-3 安迪的第一个字典 (紫书牛啤!)(UVa10815,Andy's First Dictionary)
  7. log4j简介及应用
  8. 【Kaggle微课程】Natural Language Processing - 3. Word Vectors
  9. 翻译qmake文档(二) Getting Started
  10. 工具存储过程收藏(spFindString)
  11. Redmine(Ruby)配置经验
  12. SpringBoot的自定义配置方法一,通过自定义配置文件
  13. SpringBoot+Vue+Cas单点登录与登出
  14. pano2vr 制作交互热点模板时常显示文字
  15. ue4 c++绘线 DrawLine
  16. SSH Secure File Transfer 传输错误解决方法
  17. Java接口,多态,向上转型,向下转型的意义
  18. 顺丰开放平台开发者接入指引
  19. 转录组+代谢组助力大环内酯类抗生素对藻类抑制作用机制的研究
  20. 做smart报表的一般步骤

热门文章

  1. Perforce Reconcile Offline Work
  2. 家庭网关在线率下降是为啥
  3. win32 GDI知识字体相关
  4. Azure | ARM Temeplate
  5. plc 滑台流程图_基于PLC的机械滑台设计
  6. Wappalyzer 是一个Firefox插件,也是一个网站
  7. oppo手机彩蛋android 9.0,论升级Android9.0的速度,vivo完胜OPPO
  8. 【All Right,你现在看到的是,来自于一名初中生的自学开发成长之路】
  9. 基于JAVA在线家教预约系统计算机毕业设计源码+系统+lw文档+部署
  10. Unity3D Input System 安卓 3d游戏视角控制。