详解JDK和JRE

656 阅读3分钟

一、什么是JDK?

       Java Depelopment Kit,Java开发工具,为Java的整个核心,它提供了Java的开发环境(用于将java文件编译为class文件)和运行环境(提供了JVM和Runtime辅助包,用于解析class文件使其得到运行),Java工具tools.jarJava标准类库。它的面向对象为Java开发者。

JDK有三种版本:

  • J2SE:Standard Edition,标准版,是我们通常用的一个版本;
  • J2EE:Enterprise Edition,企业版,这也是面试要求掌握的;
  • J2ME:Micro Edition,主要应用于移动设备和嵌入式设备。

那么这三个版本的区别是什么呢?

      J2SE为Java的标准版,包含了Java的核心类库,例如数据库连接、接口定义、输入输出等。主要用于开发客户端(桌面应用软件),比如常用的文本编辑器、即时通讯工具等。

      J2EE是J2SE的超集,为功能最丰富的一个版本,还包括开发企业级应用的类,例如EJB、Servlet、JSP、XML和事务控制等。主要用于开发高访问量,大数据量和高并发的网站,也可以用来开发技术庞杂的管理软件,比如ERP系统(Enterprise Resource Planning,企业资源计划系统)。如果从事Java开发,就一定要掌握J2EE。

      J2ME只包含J2SE中的一部分类,受平台影响比较大,主要用于嵌入式系统和移动平台的开发。还记得小时候在诺基亚手机上的很多Java小游戏吗,就是用J2ME开发的。

JDK安装目录如下:

  • bin:该目录包含了一些可执行程序,如javac.exe(Java编译器)、java.exe(Java运行工具)、jar.exe(打包工具)和javadoc.exe(文档生成工具)等;

  • include:由于JDK是通过C和C++实现的,因此在启动的时候需要引入一些C语言的文件,该目录就是存放这些头文件的;

  • jre:该目录是Java运行时环境的根目录,包含Java虚拟机,运行时的类包和Java应用启动器;

  • lib:为library的缩写,意为Java类库或库文件,是开发工具使用的归档包文件。

       那么,当程序写好了之后,JDK在程序运行中是如何工作的呢?Java程序经过Java编译器编译后(通过三个过程:解析与填充符号表,插入式注解处理器的注解处理过程,分析与字节码生成过程),生成.class字节码文件;将.class文件通过java.exe执行,输出结果。

二、什么是JRE?

       Java Runtime Enviroment,Java的运行环境,为运行Java程序所必须环境的集合,包括Java核心类库JVM虚拟机,但是它不包括Java开发工具,比如javac等工具。它的面向对象为Java程序的使用者。

       JRE的安装目录如下:

  • bin:有java.exe但是没有javac.exe,无法编译Java程序,但是可以执行,该目录下有JVM;

  • lib:Java基础&核心类库,包含JVM运行时需要的类库和rt.jar。

三、怎么会有两套JRE?

       如果安装了JDK,那么电脑上会有两套JRE,一套位于 C:\Program Files\Java\jre6, 另外一套位于 C:\Program Files\Java\jdk1.6.0_41\jre 目录下。选择哪个JRE来执行程序,取决于java.exe。java.exe会按照以下的顺序来查找JRE:1、自己的目录下有无JRE;2、父目录有无JRE;3、查询注册表[HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment]。