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包含JVMJVM是运行Jaa程序的核心虚拟机,而运行Java程序不仅需要核心虚拟机,还需要其他的类加载器、字节码极验器以及大量的基础类库。JRE除包含JVM之外,还包含运行Java程序的其他环境支持。

般而言,如果只是运行Java程序,可以只安装JRE,无须安装JDK

开发JDK 运行JRE

  • 如果需要开发Java程序,则应该选择安装JDK;当然,安装了JDK之后,就包含了JRE,也可以运行Java程序。
  • 如果只是运行Java程序,则需要在计算机上安装JRE,仅安装JVM是不够的。

实际上,Oracle网站上提供的就是JRE的下载,并不提供单独JVM的下载。

Java SE Java EEJava ME

OracleJava分为Java SEJava EEJava ME三个部分,而且为Java SEJava EE分别提供了JDKJava 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的各种工具命令,常用的javacjava等命令就放在该路径下
  • conf:该路径下存放了JDK的相关配置文件。
  • include:存放一些平台特定的头文件。
  • jmods:该目录下存放了JDK的各种模块
  • legal:该目录下包含了JDK各模块的授权文档。
  • lib:该路径下存放的是JDK工具的一些补充JAR包。比如src.zip文件中保存了Java的源代码。
  • READMECOPYRIGHT等说明性文档。

模块化系统

模块化系统是JDK9的重大更新,随着Java语言的功能越来越强大,Java语言也越来越庞大。很多时候,一个基于Java的软件并不会用到Java的全部功能,因此该软件也不需要加载全部的Java功能,而模块化系统则允许发布Java软件系统时根据需要只加载必要的模块

为此,JDK专门引入了一种新的JMOD格式,它近似于JAR格式,但JMOD格式更强大,它可以包含本地代码和配置文件。该目录下包含了JDK各种模块的JMOD文件,比如使用WinRar打开java.base.jmod文件,将会看到如图1.4所示的文件结构

图1.4

从图1.4可以看岀,java.base.jmodJDK的最基础模块,该模块包含了Javalangutilmath等模块,这些都是Java最核心的功能,是其他所有模块的基础。

此外,上面提到的bin路径是一个非常有用的路径,在这个路径下包含了编译和运行Java程序的avacjava两个命令。除此之外,还包含了jlinkjar等大量工具命令。

1.3.2 设置PATH环境变量

前面已经介绍过了,编译和运行Java程序必须经过两个步骤

  • 将源文件编译成字节码。
  • 解释执行平台无关的字节码程序。

上面这两个步骤分别需要使用javajavac两个命令。启动Windows操作系统的命令行窗口(在开始”菜单里运行cmd命令即可),在命令行窗口里依次输入javajavac命令,将看到如下输出:

1
2
'java'不是内部或外部命令,也不是可运行的程序或批处理文件。
'javac'不是内部或外部命令,也不是可运行的程序或批处理文件。

这意味着还不能使用javajavac两个命令。这是因为:虽然已经在计算机里安装了JDK,而JDK的安装路径下也包含了javajavac两个命令,但计算机不知道到哪里去找这两个命令。

计算机根据PATH环境变量中的路径来查找命名

计算机如何查找命令呢?Windows操作系统根据Path环境变量来查找命令。Path环境变量的值是一系列路径,Windows操作系统将在这一系列的路径中依次查找命令,如果能找到这个命令,则该命令是可执行的;否则将出现:”xxx不是内部或外部命令,也不是可运行的程序或批处理文件”的提示。

Linux操作系统则根据PATH环境变量米查找命令,PAIH环境变量的值也是一系列路径。

因为Windows操作系统不区分大小写,设置PathPATH并没有区别;而Linux系统是区分大小写的,设置PathPATH是有区别的。
因此不管是Windows还是Linux,统一设置PATH环境变量即可。

不管是Linux平台还是Windows平台,只需把javajavac两个命令所在的路径添加到PATH环境变量中,就可以编译和运行java程序了。

1. 在Windows7等平台上设置环境变量

省略…

2. 在Linux上设置环境变量

省略…..