提供《On Java 8》书籍的代码示例,自动提取自书籍内容,包含测试以验证代码正确性,支持通过Gradle构建运行,适合学习Java 8的开发者参考实践。【此简介由AI生成】
| Files | Last commit | Last update |
|---|---|---|
| 5 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 4 years ago | ||
| 4 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 4 years ago | ||
| 4 years ago | ||
| 4 years ago | ||
| 4 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 4 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 4 years ago | ||
| 4 years ago | ||
| 11 years ago | ||
| 9 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 4 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 9 years ago | ||
| 9 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 5 years ago | ||
| 5 years ago |
《On Java 8》示例代码(Bruce Eckel 著)
如果您想实践《On Java 8》一书中的代码示例,那么您来对地方了。
这些示例是直接从书中自动提取的。本仓库包含用于验证书中代码正确性的测试。
注意:请勿尝试将 JDK 16 或更高版本与 Gradle 配合使用。 这会导致 Gradle 输出“BUG!”消息,因为 Gradle 在这些版本上存在问题。
目录
命令行构建:快速版
在运行本仓库中的示例之前,您必须安装 JDK8,即 Java 8 版本的 Java 开发工具包。
如果您只想下载并查看代码,请点击此处下载,然后将其解压到您的目标目录。打开一个shell/命令窗口,并导航到该目录的根目录。如果您看到 gradlew 和 gradlew.bat 文件,就说明您已进入正确的目录。
首次编译代码时,您需要连接互联网,因为 Gradle 需要先安装自身,然后安装所有支持库。一旦这些安装完成,您就可以离线进行后续的编译和运行操作了。
在 Mac/Linux 系统上,输入:
./gradlew test
(如果遇到“Permission denied”错误,请运行 chmod +x ./gradlew)
在 Windows 系统上,输入
gradlew test
如果一切顺利,测试将会运行。所有内容都应无错误地完成。
本书的所有示例都位于 Examples 子目录中,该子目录下又包含与章节名称相对应的子目录。
从命令行构建:详细说明
如果您不熟悉命令行,请先阅读命令行基础。
安装 Java
您必须首先安装 Java 开发工具包(JDK)。
Windows
-
按照说明安装 Chocolatey。
-
在 shell 提示符下,输入:
choco install jdk8(您也可以选择更新的版本,如jdk11)。安装过程需要一些时间,完成后 Java 将被安装,并且必要的环境变量也会被设置。
Macintosh
Mac 自带的 Java 版本非常旧,无法运行本书中的示例,因此您需要将其更新到(至少)Java 8。
-
按照此链接上的说明安装 HomeBrew
-
在 shell 提示符下,首先输入
brew update。完成后,输入brew cask install java。
注意: 有时通过上述安装获得的 Java 默认版本可能太新,未经过 Mac 安全系统的验证。如果发生这种情况,您需要手动关闭安全性或安装早期版本的 Java。无论选择哪种方式,您都需要通过谷歌搜索来寻找解决问题的方法(通常最简单的方法是直接搜索 Mac 产生的错误消息)。
Linux
使用标准的软件包安装程序以及以下 shell 命令:
Ubuntu/Debian:
-
sudo apt-get update -
sudo apt-get install default-jdk
Fedora/Redhat:
su -c "yum install java-1.8.0-openjdk"
验证你的安装
打开一个新的 shell 并输入:
java -version
您应该会看到类似以下的内容(版本号和实际文本会有所不同):
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
如果看到“命令未找到”或“无法识别命令”的提示,请重新查看安装说明。如果问题仍然存在,可以访问 StackOverflow 寻求帮助。
安装和运行本书示例代码
安装好 Java 后,安装和运行本书示例代码的步骤在所有平台上都是相同的:
-
从 GitHub 仓库 下载本书示例代码。
-
将下载的文件解压到你选择的目录中。
-
使用 Windows 资源管理器、Mac Finder,或 Linux 上的 Nautilus 等文件浏览器,导航到你解压
OnJava8-Examples的目录,并在该目录下打开终端。 -
如果目录正确,你应该能看到名为
gradlew和gradlew.bat的文件,以及许多其他文件和目录。这些目录对应着书中的各个章节。 -
在终端提示符下,输入
gradlew test(Windows 系统)或./gradlew test(Mac/Linux 系统)。
首次执行此命令时,Gradle 会自行安装并下载众多其他软件包,因此需要一些时间。完成所有安装后,后续的构建和运行速度会快很多。
请注意,首次运行 gradlew 时必须连接互联网,以便 Gradle 下载所需的软件包。
附录 A:命令行基础
对于从本书学习编程的“纯新手”来说,你可能之前从未使用过计算机的命令行终端。如果你有使用经验,可以直接跳至安装说明。
编辑器
要创建和修改 Java 程序文件——也就是本书中展示的代码清单——你需要一个名为“编辑器”的程序。安装过程中有时需要修改系统配置文件,这时也需要用到编辑器。
编程编辑器种类繁多,既有功能强大的“集成开发环境”(IDE,如 Eclipse、NetBeans 和 IntelliJ IDEA),也有较为基础的文本处理应用。如果你已经有熟悉的 IDE,可以继续使用它来学习本书。
本书中的许多说明是针对 IntelliJ IDEA 的,因此如果你还没有 IDE,不妨从 IDEA 开始。当然还有很多其他编辑器;它们本身就像一种亚文化,人们有时会为它们的优劣争论不休。如果你发现更喜欢的编辑器,更换起来也并不困难。重要的是选择一个并熟练使用它。
命令行 shell
如果你之前没有编程经验,可能对操作系统的 shell(Windows 中也称为 命令提示符)不太熟悉。shell 可以追溯到计算机发展的早期,那时所有操作都通过输入命令来完成,计算机则通过显示文本响应——一切都是基于文本的。
尽管在图形用户界面时代,shell 看起来可能有些原始,但它却提供了许多令人惊喜的实用功能。
要了解更多本书未涵盖的 shell 相关知识,请参阅适用于 Mac/Linux 的 Bash Shell 或适用于 Windows 的 Windows Shell。
启动 shell
Mac:点击屏幕右上角的 Spotlight(放大镜图标),输入“terminal”。点击那个看起来像小电视屏幕的应用程序(你也可以直接按“Return”键)。这将在你的主目录中启动一个 shell。
Windows:首先,启动 Windows 资源管理器来浏览你的目录:
-
Windows 7:点击屏幕左下角的“开始”按钮。在开始菜单的搜索框中输入“explorer”,然后按“Enter”键。
-
Windows 8:按下 Windows+Q 组合键,输入“explorer”,然后按“Enter”键。
-
Windows 10:按下 Windows+E 组合键。
Windows 资源管理器运行后,通过鼠标双击文件夹来浏览计算机上的文件夹。导航到目标文件夹。然后点击资源管理器窗口左上角的“文件”选项卡,选择“打开 Windows PowerShell”。这将在目标目录中打开一个 shell。
Linux:要在主目录中打开 shell:
-
Debian:按下 Alt+F2 组合键。在弹出的对话框中,输入 'gnome-terminal'。
-
Ubuntu:可以右键点击桌面并选择“打开终端”,或者按下 Ctrl+Alt+T 组合键。
-
Redhat:右键点击桌面并选择“打开终端”。
-
Fedora:按下 Alt+F2 组合键。在弹出的对话框中,输入 'gnome-terminal'。
目录
目录 是 shell 的基本元素之一。目录可以存放文件,也可以存放其他目录。可以将目录想象成一棵带有分支的树。如果系统中有一个名为 books 的目录,并且它有两个分支目录,例如 math 和 art,那么我们就说 books 目录下有两个子目录 math 和 art。我们将它们称为 books/math 和 books/art,因为 books 是它们的父目录。注意,Windows 使用反斜杠而非正斜杠来分隔目录的各个部分。
Shell 基本操作
这里展示的 shell 操作在不同操作系统上大致相同。就本书而言,以下是 shell 中的基本操作:
-
切换目录:使用
cd命令,后跟要进入的目录名称;若要向上移动一个目录,可使用cd ..。如果想切换到另一个目录并记住当前位置,可以使用pushd命令,后跟目标目录名称。之后,只需输入popd即可返回到之前的目录。 -
列出目录内容:
ls(Windows 中为dir)命令用于显示当前目录下的所有文件和子目录名称。可以使用通配符*(星号)来缩小搜索范围。例如,若要列出所有以 “.kt” 结尾的文件,可输入ls *.kt(Windows 中为dir *.kt)。若要列出以 “F” 开头且以 “.kt” 结尾的文件,可输入ls F*.kt(Windows 中为dir F*.kt)。 -
创建目录:使用
mkdir(“make directory” 的缩写)命令(Windows 中为md),后跟要创建的目录名称。例如,mkdir books(Windows 中为md books)。 -
删除文件:使用
rm(“remove” 的缩写)命令,后跟要删除的文件名称(Windows 中为del)。例如,rm somefile.kt(Windows 中为del somefile.kt)。 -
删除目录:使用
rm -r命令删除目录及其包含的所有文件(Windows 中为deltree)。例如,rm -r books(Windows 中为deltree books)。 -
重复命令:在所有三种操作系统中,按 “上箭头” 键可以浏览之前输入的命令,以便进行编辑和重复执行。在 Mac/Linux 系统中,
!!可重复执行上一条命令,!n可重复执行第 n 条命令。 -
命令历史:在 Mac/Linux 系统中使用
history命令,或在 Windows 系统中按 F7 键,可查看所有已输入的命令列表。Mac/Linux 系统会为命令编号,以便在需要重复执行时引用。
解压 Zip 归档文件
以 .zip 结尾的文件名是一个包含其他压缩格式文件的归档文件。Linux 和 Mac 系统都有命令行 unzip 工具,Windows 系统也可以通过互联网安装命令行 unzip 工具。
不过,在这三个系统中,图形化文件浏览器(Windows 的文件资源管理器、Mac 的访达,或者 Linux 的 Nautilus 及类似工具)都能浏览到包含 zip 文件的目录。然后右键点击该文件,在 Mac 上选择“打开”,在 Linux 上选择“在此处提取”,在 Windows 上选择“全部提取...”。
附录 B:测试
测试系统是内置的,以便我们(作者)能够验证书中内容的正确性。
您无需运行这些测试,但如果您想运行,可以直接执行 gradlew test(Windows 系统)或 ./gradlew test(Mac/Linux 系统)。
要编译并运行所有内容,命令如下:
gradlew run
如果您使用的是基于 Unix/Linux 的系统,所有命令都必须指定本地目录,例如:
./gradlew run
仅编译所有内容,命令如下:
gradlew compileJava
要编译单个章节(包括依赖项),例如:
gradlew :strings:compileJava
要运行单个章节,例如:
gradlew :strings:run
Gradle 还可用于运行单个程序。这里,我们运行 strings 章节子目录中的 ReplacingStringTokenizer.java 程序:
gradlew :strings:ReplacingStringTokenizer
不过,如果文件名在整本书中是唯一的(大多数都是如此),您只需给出程序名即可,如下所示:
gradlew ReplacingStringTokenizer
请注意,所有命令都应在安装示例代码的基目录中运行,该目录中可以找到 gradlew 脚本。
您可以通过不带任何参数直接输入 gradlew 来了解其他选项。
附录 C:故障排除
如果您对这里描述的任何术语或流程仍不清楚,通常可以通过 Google 找到解释或答案。对于更具体的问题,可尝试 StackOverflow。有时您也可以在 YouTube 上找到安装说明。
有时 Gradle 构建可能无法连接到互联网以下载必要的组件,从而产生包含以下内容的错误消息:
javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
通常这意味着你的电脑上安装了多个 Java 版本(用 Java 构建的应用程序通常会安装它们自己的 Java 版本),并且不知为何,某个 cacerts 安全文件正在干扰你所安装的 Java 的 cacerts 文件。很难确定究竟是哪个 cacerts 文件在干扰你的文件。一种简单粗暴的方法是搜索你电脑上所有的 cacerts 文件,然后开始卸载相关的应用程序——或者在某些情况下,直接删除包含 cacerts 文件的目录——直到 Gradle 构建能够正常工作。你可能还需要调整一些环境变量和/或你的路径。一旦 Gradle 构建成功运行,你应该可以重新安装在此过程中卸载的任何应用程序。
Introduction
提供《On Java 8》书籍的代码示例,自动提取自书籍内容,包含测试以验证代码正确性,支持通过Gradle构建运行,适合学习Java 8的开发者参考实践。【此简介由AI生成】
Customize your domain