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 内置的交互式编程环境,适合快速测试代码片段,支持自动补全和多行输入。