1.3 开发Java的准备
1.3.1 下载和安装Java9的JDK
JDK包含JRE JRE包含JVM
JDK
JDK的全称是Java SE Development Kit,即Java标准版开发包,是Oracle提供的一套用于开发Java应用程序的开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等。
JRE
Java运行时环境,它的全称是Java Runtime Environment,因此也被称为JRE,它是运行Java程序的必需条件。
JRE包含JVM。JVM是运行Jaa程序的核心虚拟机,而运行Java程序不仅需要核心虚拟机,还需要其他的类加载器、字节码极验器以及大量的基础类库。JRE除包含JVM之外,还包含运行Java程序的其他环境支持。
般而言,如果只是运行Java程序,可以只安装JRE,无须安装JDK。
开发JDK 运行JRE
- 如果需要开发
Java程序,则应该选择安装JDK;当然,安装了JDK之后,就包含了JRE,也可以运行Java程序。 - 如果只是运行
Java程序,则需要在计算机上安装JRE,仅安装JVM是不够的。
实际上,Oracle网站上提供的就是JRE的下载,并不提供单独JVM的下载。
Java SE Java EE和Java ME
Oracle把Java分为Java SE、Java EE和Java ME三个部分,而且为Java SE和Java EE分别提供了JDK和Java EE SDK( Software Development Kit)两个开发包。
如果读者只需要学习Java SE的编程知识,则可以下载标准的JDK;
如果读者学完Java SE之后,还需要继续学习Java EE相关内容,也可以选择下载Java EE SDK。
Java EE SDK包含JDK
一个Java EE SDK版本里已经包含了最新版的JDK,安装Java EE SDK就包含了JDK。
下载JDK 安装JDK
省略…
JDK安装目录结构
安装完成后,可以在JDK安装路径下看到如下的文件路径
bin:该路径下存放了JDK的各种工具命令,常用的javac、java等命令就放在该路径下conf:该路径下存放了JDK的相关配置文件。include:存放一些平台特定的头文件。jmods:该目录下存放了JDK的各种模块legal:该目录下包含了JDK各模块的授权文档。lib:该路径下存放的是JDK工具的一些补充JAR包。比如src.zip文件中保存了Java的源代码。README和COPYRIGHT等说明性文档。
模块化系统
模块化系统是JDK9的重大更新,随着Java语言的功能越来越强大,Java语言也越来越庞大。很多时候,一个基于Java的软件并不会用到Java的全部功能,因此该软件也不需要加载全部的Java功能,而模块化系统则允许发布Java软件系统时根据需要只加载必要的模块。
为此,JDK专门引入了一种新的JMOD格式,它近似于JAR格式,但JMOD格式更强大,它可以包含本地代码和配置文件。该目录下包含了JDK各种模块的JMOD文件,比如使用WinRar打开java.base.jmod文件,将会看到如图1.4所示的文件结构

从图1.4可以看岀,java.base.jmod是JDK的最基础模块,该模块包含了Java的lang、util、math等模块,这些都是Java最核心的功能,是其他所有模块的基础。
此外,上面提到的bin路径是一个非常有用的路径,在这个路径下包含了编译和运行Java程序的avac和java两个命令。除此之外,还包含了jlink、jar等大量工具命令。
1.3.2 设置PATH环境变量
前面已经介绍过了,编译和运行Java程序必须经过两个步骤
- 将源文件编译成字节码。
- 解释执行平台无关的字节码程序。
上面这两个步骤分别需要使用java和javac两个命令。启动Windows操作系统的命令行窗口(在开始”菜单里运行cmd命令即可),在命令行窗口里依次输入java和javac命令,将看到如下输出:
1 | 'java'不是内部或外部命令,也不是可运行的程序或批处理文件。 |
这意味着还不能使用java和javac两个命令。这是因为:虽然已经在计算机里安装了JDK,而JDK的安装路径下也包含了java和javac两个命令,但计算机不知道到哪里去找这两个命令。
计算机根据PATH环境变量中的路径来查找命名
计算机如何查找命令呢?Windows操作系统根据Path环境变量来查找命令。Path环境变量的值是一系列路径,Windows操作系统将在这一系列的路径中依次查找命令,如果能找到这个命令,则该命令是可执行的;否则将出现:”xxx不是内部或外部命令,也不是可运行的程序或批处理文件”的提示。
而Linux操作系统则根据PATH环境变量米查找命令,PAIH环境变量的值也是一系列路径。
因为Windows操作系统不区分大小写,设置Path和PATH并没有区别;而Linux系统是区分大小写的,设置Path和PATH是有区别的。
因此不管是Windows还是Linux,统一设置PATH环境变量即可。
不管是Linux平台还是Windows平台,只需把java和javac两个命令所在的路径添加到PATH环境变量中,就可以编译和运行java程序了。
1. 在Windows7等平台上设置环境变量
省略…
2. 在Linux上设置环境变量
省略…..