《On Java 中文版 基础卷》阅读笔记 安装 Java 和本书示例 02

《On Java 中文版 基础卷》阅读笔记 安装 Java 和本书示例 02

2.1 编辑器

如果想要新建和修改 Java 文件,首先需要一个编辑器的软件。在安装 Java 的过程中,有时也需要利用编辑器来修改系统配置文件。

用于编程的编辑器种类千差万别,从全能型的集成开发环境(IDE,比如 IntelliJ IDEA 或者 VSCode)到简单的文本处理软件,多如繁星。

如果你已经习惯于使用某种 IDE,那么在阅读本书的过程中可以放心地继续使用它。如果你还没有习惯使用的 IDE,那么可以试试 VSCode。

VSCode 编辑器是免费的开源软件,安装过程十分简单,且支持全平台(包括 Windows、Mac 和 Linux)​。

同时,它内置了 Java 模式,在你打开 Java 文件的时候就可以自动生效。

此外,它还提供了一些让人爱不释手的功能。感兴趣的话,你可以在其网站上浏览更多的详细信息。

世界上还有许多其他的编辑器,人们热衷于讨论各种编辑器孰优孰劣。如果你找到了一个更喜欢的编辑器,转到这个新的编辑器也并不困难。重要的是,选择一个编辑器并适应它。

虽然 VSCode 很适合初学者,然而当你进一步深入 Java 编程时,也许你会想要研究一下 JetBrains 公司推出的 IntelliJ IDEA 所提供的一些更为强大的编程功能。对我来说,两者我都会经常使用。

2.2 shell

如果你没有任何编程经验,那么可能对操作系统的 shell(在 Windows 中也叫作命令提示符)也不太熟悉。

shell 的历史可以追溯到计算机的早期,那时所有的计算机操作都是通过敲击命令来实现的,并且计算机通过显示响应来回应,这一切都是基于文本模式的。

虽然和后来出现的图形用户界面 (graphical user interface, GUI) 相比,shell 显得十分原始,不过它依然提供了大量的重要功能。

本书在安装 Java 的过程中和运行 Java 程序时,会经常使用 shell。

2.2.1 运行 shell

Windows 11:

首先,按照下面的方法启动资源管理器 (Windows Explorer) 以浏览目录。

点击 Windows+E 键。

打开资源管理器之后,就可以通过鼠标双击进入文件夹。你可以选择跳转至自己想查看的目录,

然后右键选择在终端打开,这样就在目标目录打开了一个 shell 窗口。

或输入 cmd 回车

或输入 powershell 回车

PowerShell 和 CMD 的区别:

PowerShell 是 Windows 推出的兼容 Linux 命令的 shell 窗口,CMD shell 窗口使用的是 Windows 的命令,大家一般更加熟悉 Linux 的命令。

2.2.2 目录(文件夹)

目录是 shell 的基础要素之一。

目录可以包含文件或其他目录。

你可以把一个目录想象成带有分枝的一棵树。

比如你的系统里有一个名为 books 的目录,其中包含 math 和 art 这两个目录,那么就可以说目录 books 拥有 math 和 art 这两个子目录。

因为 books 是父目录,所以还可以用 books/math 以及 books/art 来表示两者。

需要注意的是,Windows 系统使用反斜杠 "\" 而不是斜杠 "/" 来分隔一个目录的各个部分。

2.2.3 shell 基础操作

本节所介绍的 shell 操作在不同的操作系统中大致相同。下面介绍一些本书中会用到的 shell 基础操作和命令。

  • 切换目录:使用 cd 命令加上目录名进入目录,或者使用 cd... 返回上级目录。如果你希望在进入一个目录的同时还能记住之前的目录名,可以使用 pushd 加上新目录名进入这个目录,之后可以使用 popd 返回之前的目录。
  • 目录列表:使用 ls 命令(Windows 系统中则是 dir)可以展示当前目录下的所有文件和子目录。使用通配符 * 可以对展示的内容进行过滤。比如,当你需要列出所有后缀是 ".java" 的文件时,可以使用 ls*.java(Windows 系统中则是 dir*.java)。更进一步,如果你希望列出所有以字母"F" 开头且后缀名是 ".java" 的文件,可以使用 ls F*.java(Windows 系统中则是 dir F*.java)。

  • 新建目录:使用 mkdir(make directory 的缩写)命令加上目录名可以新建一个目录(Windows 系统中则使用 md)。例如,使用 mkdir books(Windows 系统中则是 md books)就会在当前目录下新建一个名为 books 的目录。
  • 删除文件:使用 rm(remove 的缩写)命令加上文件名可以删除该文件(Windows 系统中则使用 del)。例如,使用 rm somefile.java 可以删除名为 somefile.java 的文件(Windows 系统中则使用 del somefile.java)。
  • 删除目录:使用 rm -r 命令可以删除目录及其包含的所有文件(Windows 系统中则使用 deltree)。例如,使用 rm -r books 可以删除 books 目录及其包含的所有文件(Windows 系统中则使用 deltree books)。
  • 重复命令:所有 3 种操作系统都支持在shell窗口里用 "↑" 键显示上一条命令,方便你编辑和再次使用该命令。在 Mac/Linux 系统下,!! 会执行上一条命令,!n 则会执行第 n 条命令。
  • 命令历史:在 Mac/Linux 系统下使用 history 或者在 Windows 系统下按下 F7 键,就可以查看所有使用过的命令。Mac/Linux 系统下还会显示命令的历史序号,这样你就可以方便地重复该命令。
  • 解压文件:后缀名为 ".zip" 的文件是一个包含了其他文件的压缩包文件。Mac/Linux 系统提供了用于解压的 unzip 命令,如果是 Windwos 系统,你可以通过互联网安装 unzip 命令。

如果你希望学习更多关于 shell 的知识,请在百度百科中搜索 "Windows Shell"​。如果你使用的是 Mac/Linux 系统,可以搜索 "Bash Shell"​。

2.3 安装 Java

为了编译和运行本书的示例,首先必须安装 JDK(Java Development Kit, Java 开发工具集)​。

虽然新版本的 Java 一般是后向兼容的,但本书依然使用 JDK 8​,不过本书中的例子在 JDK 8 及其以上的版本中应该都是有效的。

如果你想选择新版本的JDK,推荐选择一个长期支持 (LTS) 的版本---在编写本书时,最新的 LTS 版本是 JDK 17。

1 下载 JDK

1.1 下载地址

https://www.oracle.com/java/technologies/downloads/

1.2 如何下载

02 安装 JDK

03 JDK 配置环境变量

2.4 确认安装成功

2.5 安装和运行本书示例

本书所有源代码都可以在GitHub网站上获取:https://github.com/BruceEckel/Onjava8-examples。这些源代码可以用于在校学习或者其他教育类场景。

如何打开 GitHub

Gradle 教程

成功安装 Java 之后,你可以通过以下过程来安装和运行本书示例。

1.通过 GitHub 代码仓库下载本书中的示例。

2.将下载的文件解压到你选择的目录中​。

3.打开你解压 OnJava8-Examples 文件的目录,并在此目录中打开一个 shell 窗口。

4.如果你进入了正确的目录,会看到 gradlew 和 gradlew.bat 文件以及大量的其他文件和目录。其中,目录名和章节的英文名是一一对应的。

5.在shell窗口里输入 "gradlew run"​(对应 Windows 系统)或者 "./gradlew run"​(对应 Mac/Linux 系统)​。

或者使用 CMD

第一次运行这个程序,Gradle 需要花费一些时间来自行安装以及安装一些其他的工具包。一旦安装完毕,后续的构建和运行就会快速得多。

需要注意的是,第一次运行 gradlew 时,需要确保计算机是连接到互联网的,以便 Gradle 可以下载一些必要的工具包。

Gradle 基础任务

本书工程代码的构建会产生大量的 Gradle 任务。这是因为 Gradle 使用一种称为约定优于配置 (convention over configuration) 的运行方式,

这意味着即便你只是尝试完成一个非常基础的任务,Gradle 依然会创建很多任务。

因此,那些 "搭顺风车" 的任务要么不适用于本书,要么不能正确运行。

下面是一些你可能会用到的 Gradle 任务。

  • gradlew compileJava:编译本书中所有可被编译的 Java 文件(有些文件不可编译,仅用于演示语言的错误用法)。
  • gradlew run:对于本书中所有可执行的 Java 文件(有些文件是库组件),先编译再执行。
  • gradlew test:执行所有的单元测试(相关知识点将会在第 16 章中讲述)。
  • gradlew chapter: ExampleName:编译和运行一个特定的示例程序,比如 gradlew objects: HelloDate。
相关推荐
FfHUCisI1 小时前
sync.Once 与 sync.Cond 源码与并发控制陷阱
服务器·开发语言·后端·golang
阿钱真强道1 小时前
21 嵌入式操作系统 | JSON 与 json-c:生成与解析
c语言·开发语言·json·json-c
j7~1 小时前
【Python】(篇六)《基础语法(函数、列表和元组、字典、文件)》---详解
开发语言·python·文件·函数·字典·编程学习·元组与列表
许彰午1 小时前
53-审计三表
java·低代码·架构
重生之小比特1 小时前
【C++进阶】红黑树的实现
java·开发语言·c++
纪念 2291 小时前
C++算法(一)
开发语言·c++·算法
程序猿乐锅2 小时前
【黑马点评 | 第九篇】秒杀优化-异步实现
java·spring boot·redis·后端·spring·中间件·mybatis
咖啡忍者3 小时前
【SAP BASIS】Section 5: SAP System Configuration
笔记
FYKJ_20103 小时前
springboot助农产品销售商城05829-计算机课程设计、毕业设计
java·spring boot·python·mysql·spark·django