什么是JDK?什么是JRE?

1. JDK

当然用系统的说法是,JDK(Java Development Kit)(百度参考),简而言之是,是一个开发工具。是用来开发java的工具包。有了这个东西就可以写java代码,编译java代码(javac),和打和读取jar包了。

1.1. 相关名词解释

  • JDK(Java Development Kit) Java语言的软件开发工具包(SDK)。
  • SE(J2SE),standard edition,标准版,是我们通常使用的版本,从JDK5.0 开始,改名为Java SE。(PS: 所以我们之后安装JDK的时候通常是安装的这个,Java SE,千万别下载错误了。)
  • EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK5.0开始,改名为Java EE。
  • ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java程序,从JDK5。0开始,改名为Java ME。
    没有JDK的话,无法编译Java程序,如果只想运行Java程序,确保安装相对应的JRE即可。

1.2. JDK基本组件

JDK中基本的组件如下所示:

  • javac: 编译器,将源程序转成字节码。(即.java文件编译为.class文件。)
  • jar: 打包工具,将相关的类文件打包成一个文件。
  • javadoc: 文档生成器,从源码注释中提取文档。
  • jdb: debugger,查错工具。
  • java: 运行遍以后的java程序(.class),个人理解这个就是JRE。
  • appletviewer: 小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。(主要和Applet程序有关)
  • javah: 产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
  • javap: Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
  • jconsole: Java进行系统调试和监控的工具。

1.3. 常用的包

  • java.lang: 这个是系统的基础类,比如String等都是这个里面的,这个包食为一一个不用引入(import)就可以使用的包。
  • java.io: 这里面是所有输入输出有关的类,比如文件操作等等。(例如: InputStream/OutputStream等)
  • java.nio: 为了完善IO包中的功能,提高IO包中性能而写的一个新包,例如NIO非阻塞应用。
  • java.net: 这里面是与网络有关的类,比如URL,URLConnection等。
  • java.util: 这个是系统辅助类,特别是集合类Collection,List,Map等等。
  • java.sql: 这个是数据库操作的类,Connection,Statement,ResultSet等。
  • javax.servlet: 这个是JSP,Servlet等使用到到类。

1.4. 安装和配置

此处暂不介绍,详情请参考…


2. JRE

JavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。

JRE(Java Runtime Environment)(百度参考),中文名Java运行环境。

2.1. 组成部分

JRE有如下的组成部分:

  • Java虚拟机(JVM)
  • Java核心类库
  • 支持文件
    注意:
  • 它不包含开发工具(JDK)–编译器、调试器和其它工具。JRE需要辅助软件–Java Plug-in–以便在浏览器中运行applet。
  • J2RE是Java2 Runtime Environment,即Java运行环境,只是强调其匹配Java2平台,有时简称JRE。如果你只需要运行Java程序或Applet,下载并安装它即可。如果你要自行开发 Java软件,请下载JDK(JRE和JDK的区别)。在JDK中附带有JRE。注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行 Applet,务必安装一个JRE或JDK。

2.2. 版本管理

Java的解决办法是每个程序自己携带一套JRE。
当在控制台执行java.exe,操作系统寻找JRE的方式如下:

  1. 先找当前目录下有没有JRE
  2. 再找父目录下有没有JRE
  3. 接着在PATH路径中找JRE

一般情况下,自己的程序运行之前都会先在批处理文件里面临时设置PATH,把自己用的JRE放到PATH路径最前面,所以肯定会运行自己带的JRE,不会造成版本混乱。

Windows
注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\ 查看CurrentVersion的键值指向哪个JRE
最常用的是在PATH路径中找JRE。

2.3. 图示

  • 核心类库:

java的jre包在拿找_java核心

  • JRE运行过程

java的jre包在拿找_jdk_02

  • JDK和JRE组成

java的jre包在拿找_JRE_03