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可以看岀,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上设置环境变量

省略…..