1. 名词解释
1.1 通用
IDE:Integrated Development Environment
集成开发环境是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。
SDK:Software Development Kit
软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
1.2 针对Java
JDK是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
JRE是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JVM是Java虚拟机的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。
2.Java基础知识
2.1 JDK、JRE、JVM三者间的关系
JVM(java virtual machine)
就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。
也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
只有JVM还不能完成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。
JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
JRE(Java Runtime Environment)
运行Java程序一般都要求用户的电脑安装JRE环境;没有jre,java程序无法运行;而没有java程序,jre就没有用武之地。
JDK
JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品。
JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。
JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
①SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。
②EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。
③ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。
2.2 Java的跨平台性
什么是跨平台性?
通过Java语言编写的应用程序在不同的系统平台上都可以运行。
原理是什么?
只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
JRE(Java Runtime Environment)
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JDK(Java Development Kit Java开发工具包)
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等
简单而言:使用JDK开发完成的java程序,交给JRE去运行。 JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。JRE是是指Java的运行环境,是面向Java程序的使用者,而不是开发者。
3.为什么装了java的IDE还要装JDK?
IDE 是用来编写代码的,JDK 是用来编译代码的。先用 IDE 写好代码,然后再用 JDK 将其编译。这个编译过程也可以让 IDE 来帮你调用,所以有的 IDE 就需要你告诉它 JDK 的位置。
这个问题就像是,为什么有了Word,我们还需要.doc文件呢?
因为word只是生产 .doc文件的工具。
IDE也是我们编写程序的工具,而这个工具制作出来的东西是.java。 而要运行.java必须编译和运行,这就需要JDK了。
4.Java和C/C++ 开发环境配置的不同
1. C/C++ 不支持跨平台,因此不需要虚拟机和安装它的特定运行环境,也就没有与Java的JRE相呼应的东西。
2. 使用 C/C++ 开发时,我们通常使用Visual Studio的集成开发环境(IDE),而VS中已经包含了SDK,所以不需要额外的安装。但是,Java就需要,我们使用Myeclipse进行开发时,还是需要安装JDK。
3. 总体来说,安装配置Java开发环境比C/C++ 要复杂一点儿。