JDK与JRE的含义以及应用详解

JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。

JDK一般有三种版本:SE(J2SE),standard edition,标准版,是我们通常用的一个版本EE(J2EE),enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序,ME(J2ME),micro edtion,主要用于移动设备、嵌入式设备上的java应用程序Java开发工具(JDK)是许多Java专家最初使用的开发环境。尽管许多编程人员已经使用第三方的开发工具,但JDK仍被当作Java开发的重要工具。JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心Java API是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。Java API包括一些重要的语言结构以及基本图形,网络和文件I/O.一般来说,Java API的非I/O部分对于运行Java的所有平台是相同的,而I/O部分则仅在通用Java环境中实现。

作为JDK实用程序,工具库中有七种主要程序。

◆Javac:Java编译器,将Java源代码转换成字节码。

◆Java:Java解释器,直接从类文件执行Java应用程序字节代码。

◆appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

◆Javadoc:根据Java源码及说明语句生成HTML文档。

◆Jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。

◆Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

◆Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。是Sun的产品,包括两部分:JavaRuntimeEnvironment和JavaPlug-inJavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具——编译器、调试器和其它工具。JRE需要辅助软件 ——JavaPlug-in——以便在浏览器中运行applet.J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE.如果你只需要运行Java程序或Applet,下载并安装它即可。如果你要自行开发 Java软件,请下载JDK.在JDK中附带有JRE.注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行 Applet,务必安装一个JRE或JDK.

JDK与JRE在启动应用服务器中的作用:

开始接触Java的时候觉得Java虚拟机很麻烦,不明白JRE与JDK的区别是什么?后来搞清楚JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此对JAVA_HOME设置为JDK的路径时也可以正常运行Java程序,但是JDK比较大包括了许多与运行无关的内容,因此运行普通的Java程序无须安装JDK。

但是用了Eclipse又有了疑问,为什么这个开发环境JRE就可以正常运行呢?其实在Eclipse中内嵌了Java编译器,并且与JDK中的javac完全相容,因此无须使用JDK也可以直接编译Java程序。

学习J2EE的时候又开始不明白,为什么Tomcat和Apusic用JRE就可以启动,Weblogic用JDK才能启动呢?原因是Tomcat和Apusic 4都已经包括了一个源代码编译器,而Weblogic没有包括这个编译器包。

那么为什么需要编译器呢?因为在WEB应用中JSP文件是需要转换成Servlet,这个Servlet文件还需要编译成可以在JRE上执行的class文件,因此必须提供有编译能力的JDK,将JAVA_HOME设置为JDK的路径就可以了。

那么新出现的Apusic 5.0呢?这个版本为了使大家可以灵活调整JVM的版本,因此不再提供自带的Java编译器,而是通过用户安装的JDK来完成JSP的编译工作,这个也就是为什么Apusic 5.0必须通过JDK启动的原因。

你可能感兴趣的:(java基础)