← 返回目录

第一章:环境安装

安装 JDK 21,配置开发环境

1. 安装 JDK 21

Java 21 是当前最新的长期支持(LTS)版本,推荐用于生产环境。根据你的平台选择对应的安装方式。

macOS(Homebrew)

macOS 推荐使用 Homebrew 安装 Temurin(Eclipse 维护的开源 JDK 发行版):

# 安装 JDK 21(Temurin 发行版)
brew install --cask temurin@21

# 或者使用 SDKMAN(推荐,可管理多个 JDK 版本)
curl -s "https://get.sdkman.io" | bash
sdk install java 21.0.4-tem

# 确认版本
java --version

提示:SDKMAN 是 Java 生态中广泛使用的版本管理工具,类似 Node.js 的 nvm,可以轻松切换不同 JDK 版本。

Ubuntu / Debian

# 安装 OpenJDK 21
sudo apt update
sudo apt install openjdk-21-jdk

# 如果仓库中没有,使用 Adoptium(Temurin)
sudo apt install -y wget apt-transport-https
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo tee /etc/apt/trusted.gpg.d/adoptium.asc
echo "deb https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install temurin-21-jdk

# 确认版本
java --version

Windows

# 方式一:使用 Scoop(推荐)
scoop bucket add java
scoop install temurin21-jdk

# 方式二:使用 Chocolatey
choco install temurin21

# 方式三:手动下载
# 从 https://adoptium.net/ 下载 JDK 21 安装包
# 安装后将 JAVA_HOME 和 bin 目录添加到 PATH

验证安装

$ java --version
openjdk 21.0.4 2024-07-16 LTS
OpenJDK Runtime Environment Temurin-21.0.4+7 (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.4+7 (build 21.0.4+7-LTS, mixed mode)

$ javac --version
javac 21.0.4

🔄 对比其他语言

Python 用 python3 --version,Node.js 用 node -v,PHP 用 php -v。Java 的版本检查命令是 java --version,注意是双横线。

2. JAVA_HOME 与环境变量

很多 Java 工具(Maven、Gradle、IDE)依赖 JAVA_HOME 环境变量。确认它指向正确的 JDK 安装路径。

# macOS / Linux - 查看 JAVA_HOME
echo $JAVA_HOME

# 如果为空,手动设置(添加到 ~/.zshrc 或 ~/.bashrc)
export JAVA_HOME=$(/usr/libexec/java_home -v 21)  # macOS
export JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64  # Ubuntu
export PATH=$JAVA_HOME/bin:$PATH

# Windows(PowerShell)
echo $env:JAVA_HOME
# 通过系统设置 > 环境变量 添加 JAVA_HOME

注意:如果使用 SDKMAN 管理 JDK,它会自动设置 JAVA_HOME,无需手动配置。

3. Hello World

让我们写一个 Java 程序,了解基本结构。Java 21 支持直接运行单文件程序,无需手动编译。

// Hello.java
public class Hello {
    public static void main(String[] args) {
        String name = "Java";
        int version = 21;
        String[] features = {"Record", "Sealed Class", "Pattern Matching", "Virtual Threads"};

        System.out.println("Hello, " + name + " " + version + "!");

        // 文本块(Text Block)- Java 13+
        String message = """
                Java %d 新特性:
                """.formatted(version);
        System.out.print(message);

        // 增强 for 循环
        for (int i = 0; i < features.length; i++) {
            System.out.println("  " + (i + 1) + ". " + features[i]);
        }

        System.out.println(greet("Java 21"));
    }

    static String greet(String who) {
        return "欢迎学习 " + who + "!";
    }
}

保存后运行:

# 方式一:传统编译运行
$ javac Hello.java
$ java Hello

# 方式二:直接运行(Java 11+,单文件免编译)
$ java Hello.java

Hello, Java 21!
Java 21 新特性:
  1. Record
  2. Sealed Class
  3. Pattern Matching
  4. Virtual Threads
欢迎学习 Java 21!

语法要点速记:

  • • 文件名必须与 public class 名一致
  • • 入口方法签名固定为 public static void main(String[] args)
  • • 每条语句以 ; 结尾
  • • 字符串拼接用 +
  • • Java 是强类型语言,变量必须声明类型(或用 var 推断)

🔄 运行方式对比

Java java Hello.java(单文件)或 javac + java
Python python hello.py
TypeScript npx tsx hello.ts
Go go run hello.go

Java 11+ 支持单文件直接运行(java File.java),无需显式编译,体验更接近脚本语言。

4. 安装 Maven

Maven 是 Java 最主流的构建与依赖管理工具,地位相当于 Node.js 的 npm、Python 的 pip、PHP 的 Composer。

安装 Maven

# macOS
brew install maven

# Ubuntu / Debian
sudo apt install maven

# Windows(Scoop)
scoop install maven

# 或通过 SDKMAN
sdk install maven

# 验证安装
mvn --version

初始化项目

# 使用 Maven archetype 快速创建项目骨架
mvn archetype:generate \
  -DgroupId=com.example \
  -DartifactId=my-java-project \
  -DarchetypeArtifactId=maven-archetype-quickstart \
  -DarchetypeVersion=1.5 \
  -DinteractiveMode=false

cd my-java-project

生成的项目结构:

my-java-project/
├── pom.xml                  # Maven 配置文件(相当于 package.json)
└── src/
    ├── main/java/com/example/
    │   └── App.java          # 主程序
    └── test/java/com/example/
        └── AppTest.java      # 测试

pom.xml 是项目的核心配置文件:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>my-java-project</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- 添加依赖示例:Gson JSON 库 -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.11.0</version>
        </dependency>
    </dependencies>
</project>

常用 Maven 命令

# 编译项目
mvn compile

# 运行测试
mvn test

# 打包为 JAR
mvn package

# 清理构建产物
mvn clean

# 安装到本地仓库
mvn install

🔄 包管理器对比

语言 工具 配置文件 仓库
Java Maven pom.xml Maven Central
Node.js npm package.json npmjs.com
Python pip requirements.txt PyPI
PHP Composer composer.json Packagist

5. IDE 配置

Java 开发推荐使用 IntelliJ IDEA,它是最强大的 Java IDE。社区版(Community Edition)免费且功能完整。

🧠

IntelliJ IDEA

最流行的 Java IDE,智能补全、重构、调试一体化,社区版免费。

jetbrains.com/idea
💻

VS Code + Java Pack

轻量级方案,安装 Extension Pack for Java 即可获得完整 Java 开发支持。

vscjava.vscode-java-pack
🌐

Eclipse

老牌开源 IDE,在企业环境中仍广泛使用,插件生态丰富。

eclipse.org

如果使用 VS Code,安装 Extension Pack for Java 扩展包:

# VS Code 命令行安装
code --install-extension vscjava.vscode-java-pack

推荐:如果你是 Java 新手,强烈建议使用 IntelliJ IDEA Community Edition。它的智能提示和重构能力远超其他编辑器,能显著提升学习效率。可通过 brew install --cask intellij-idea-ce(macOS)快速安装。

6. JShell 交互式编程

Java 9 引入了 JShell(REPL),可以像 Python 的交互式解释器一样快速测试代码片段。

$ jshell
|  欢迎使用 JShell -- 版本 21.0.4
|  要大致了解该版本, 请键入: /help intro

jshell> var name = "Java 21"
name ==> "Java 21"

jshell> System.out.println("Hello, " + name)
Hello, Java 21

jshell> List.of(1, 2, 3).stream().map(x -> x * x).toList()
$3 ==> [1, 4, 9]

jshell> record Point(int x, int y) {}
|  已创建 记录 Point

jshell> new Point(3, 4)
$5 ==> Point[x=3, y=4]

jshell> /exit

🔄 REPL 对比

Java jshell — Java 9+ 内置
Python python3 — 直接进入交互模式
Node.js node — 直接进入 REPL

JShell 支持 Tab 补全、多行代码输入和自动导入常用类,非常适合快速验证想法。

7. 本章要点

🛠️ 安装 JDK

macOS 用 brew install --cask temurin@21,Ubuntu 用 apt install openjdk-21-jdk,也可用 SDKMAN 统一管理。用 java --version 验证。

⚙️ 环境变量

确保 JAVA_HOME 指向正确的 JDK 路径,很多工具依赖此变量。SDKMAN 用户无需手动设置。

📝 Hello World

Java 11+ 支持 java File.java 单文件直接运行。文件名须与 public class 名一致,入口方法为 main

📦 Maven

Java 的包管理与构建工具。pom.xml 是配置文件,mvn compile 编译,mvn package 打包为 JAR。

💻 IDE 选择

IntelliJ IDEA 是首选,VS Code + Java Pack 是轻量替代。强烈建议使用 IDE 的智能提示功能。

🖥️ JShell

Java 内置的交互式编程环境,适合快速测试代码片段,支持自动补全和多行输入。