Cài đặt môi trường — JDK 21 và IntelliJ IDEA
Hướng dẫn cài JDK 21 trên macOS, Ubuntu và Windows, cài IntelliJ IDEA Community, quản lý nhiều version JDK bằng SDKMAN, và so sánh các IDE phổ biến.
TL;DR: Để viết và chạy Java, bạn cần cài JDK (không phải chỉ JRE) vì JDK bao gồm javac để biên dịch .java thành .class. Phiên bản khuyến nghị là JDK 21 LTS — cài qua Homebrew trên macOS, apt trên Ubuntu, hoặc file .msi từ adoptium.net trên Windows. IDE khuyến nghị là IntelliJ IDEA Community — miễn phí, đầy đủ tính năng cho Java. Sau khi cài xong, luôn verify bằng java -version và javac -version để chắc chắn môi trường sẵn sàng.
Trước khi viết một dòng code Java, bạn cần chuẩn bị dụng cụ. Giống như thợ mộc không thể bắt đầu khi chưa có búa, cưa, và thước — lập trình viên Java cần JDK (để compile và chạy code) và IDE (để viết code hiệu quả).
Bài 02 phân biệt JRE vs JDK — nhớ: cài JDK vì cần javac để biên dịch. Bài này hướng dẫn từng bước cài đặt cho cả ba nền tảng phổ biến, kèm mẹo quản lý nhiều phiên bản JDK.
1. Analogy — "Dụng cụ của người thợ"
Người thợ mộc trước khi xây nhà phải chuẩn bị:
- Búa, cưa, thước — công cụ thực hiện công việc
- Xưởng — nơi làm việc có ánh sáng, bàn làm việc, tủ đựng đồ
Lập trình viên Java cũng vậy:
- JDK = búa + cưa = công cụ thực thi (
javaccompile,javachạy) - IntelliJ IDEA = xưởng = môi trường làm việc có gợi ý code, debug, kiểm tra lỗi ngay khi gõ
Thiếu JDK thì IDE cũng chạy trống không. Thiếu IDE thì bạn sẽ viết code bằng Notepad — được, nhưng mất nhiều thời gian hơn cần thiết.
| Dụng cụ người thợ mộc | Môi trường Java |
|---|---|
| Hộp đồ nghề (búa, cưa, thước) | JDK (javac, java, jar, javap...) |
| Xưởng thợ / bàn làm việc | IDE (IntelliJ IDEA) |
| Nguyên liệu gỗ thô | File .java bạn viết |
| Sản phẩm hoàn thiện | File .class chạy được trên JVM |
JDK là hộp công cụ — không có nó, bạn không thể "xây" gì. IDE là xưởng thợ — không có nó, bạn phải làm bằng tay từng bước. Cài cả hai ngay từ đầu.
2. Hai thứ phải có
Trước khi cài bất cứ thứ gì, ghi nhớ danh sách:
| Thứ cần cài | Tác dụng | Version khuyến nghị |
|---|---|---|
| JDK 21 | Compile .java sang .class, chạy bytecode | 21 LTS (Eclipse Temurin) |
| IntelliJ IDEA Community | IDE miễn phí, đầy đủ tính năng Java | Phiên bản mới nhất |
Khoá học này dùng JDK 21 — phiên bản LTS (Long-Term Support), được hỗ trợ bảo mật đến tận 2031. Java 25 LTS đã phát hành 09/2025, nhưng toàn bộ nội dung khoá chạy tốt trên Java 21. Tránh các phiên bản trung gian (Java 22, 23, 24) — không phải LTS, hỗ trợ chỉ 6 tháng.
3. Cài JDK 21 thế nào trên macOS, Ubuntu và Windows?
Có nhiều cách cài JDK tùy nền tảng. Hướng dẫn dưới đây dùng Eclipse Temurin — distribution OpenJDK phổ biến nhất, miễn phí hoàn toàn.
flowchart LR A["Tai JDK 21<br/>(Temurin/apt/Homebrew)"] --> B["Cai dat<br/>(installer/package)"] B --> C["Set PATH<br/>(tu dong hoac thu cong)"] C --> D["Verify<br/>java -version<br/>javac -version"] D --> E["Cai IntelliJ IDEA<br/>Community"] E --> F["Tao project moi<br/>chon JDK 21"] F --> G["Chay thu<br/>Hello World"]
3.1 macOS
Cách 1 — dùng Homebrew (khuyến nghị):
# Cai Homebrew neu chua co
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Cai Temurin 21
brew install --cask temurin@21
# Verify
java --version
javac --version
Cách 2 — dùng SDKMAN (tốt hơn nếu cần quản lý nhiều version):
# Cai SDKMAN
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# Cai Temurin 21
sdk install java 21.0.3-tem
# Verify
java --version
# openjdk version "21.0.3" 2024-04-16
# OpenJDK Runtime Environment Temurin-21.0.3+9
3.2 Ubuntu / Linux
# Cap nhat package list
sudo apt update
# Cai OpenJDK 21
sudo apt install openjdk-21-jdk -y
# Verify
java --version
javac --version
# Xem JAVA_HOME
update-alternatives --list java
Nếu máy đã có nhiều JDK cũ, chọn version dùng mặc định:
sudo update-alternatives --config java
# Chon so tuong ung voi java-21
3.3 Windows
- Vào adoptium.net — trang chính thức của Eclipse Temurin
- Chọn Temurin 21 (LTS), chọn Windows x64
- Tải file
.msi(installer có giao diện) - Chạy installer, chọn "Set JAVA_HOME variable" và "Add to PATH" — đánh dấu cả hai
- Mở Command Prompt mới, verify:
java --version
javac --version
Phải mở Command Prompt mới sau khi cài — cửa sổ cũ chưa load lại PATH nên không thấy java. Nếu vẫn không thấy, kiểm tra System Properties → Environment Variables có JAVA_HOME và %JAVA_HOME%\bin trong PATH chưa.
3.4 Verify sau khi cài
Dù cài theo cách nào, output phải là Java 21:
java --version
# openjdk 21.0.3 2024-04-16
# OpenJDK Runtime Environment Temurin-21.0.3+9 (build 21.0.3+9)
# OpenJDK 64-Bit Server VM Temurin-21.0.3+9 (build 21.0.3+9, mixed mode)
javac --version
# javac 21.0.3
Nếu thấy version 21.x — JDK đã sẵn sàng.
4. Cài IntelliJ IDEA Community
IntelliJ IDEA có 2 edition:
- Community — miễn phí, đầy đủ tính năng cho Java thuần: editor thông minh, debugger, Maven, Gradle, Git
- Ultimate — trả phí, thêm hỗ trợ Spring và web framework, database tools, profiler nâng cao
Với khóa học này và hầu hết dự án Java thông thường, Community Edition là đủ.
4.1 Tải và cài
- Vào jetbrains.com/idea/download
- Chọn hệ điều hành, kéo xuống mục Community Edition (không phải Ultimate)
- Tải về và chạy installer
- Với macOS: kéo IntelliJ IDEA CE vào thư mục Applications
4.2 Tạo project Java đầu tiên
Sau khi mở IntelliJ IDEA lần đầu:
- Chọn New Project
- Chọn Java (cột trái)
- Phần JDK: click dropdown, chọn "Add JDK" nếu chưa thấy Java 21, trỏ tới thư mục cài JDK
- Đặt tên project (ví dụ:
HelloJava) - Click Create
IntelliJ sẽ tạo cấu trúc thư mục:
HelloJava/
src/
Main.java <-- file code chinh
HelloJava.iml <-- module config (intellij)
IntelliJ IDEA Community giống xưởng thợ đầy đủ nhưng miễn phí — bạn có tất cả công cụ cần thiết mà không phải trả tiền. Ultimate là phiên bản xưởng thợ cao cấp hơn, nhưng hầu hết những gì bạn cần cho khoá học này, Community đã có sẵn.
5. Quản lý nhiều version JDK với SDKMAN
Trong thực tế doanh nghiệp, bạn thường phải làm việc với nhiều dự án cùng lúc — dự án A yêu cầu Java 17, dự án B yêu cầu Java 21, dự án C legacy vẫn chạy Java 11. Đổi JDK thủ công mỗi lần rất mất thời gian.
SDKMAN giải quyết chính xác bài toán này — giống như nvm cho Node.js hay pyenv cho Python.
SDKMAN giống bộ chuyển kênh TV — bạn có nhiều JDK cài sẵn trên máy, muốn dùng version nào thì chuyển bằng 1 lệnh. Không cần gỡ cài rồi cài lại.
5.1 Cài SDKMAN (macOS và Linux)
# Cai SDKMAN
curl -s "https://get.sdkman.io" | bash
# Ap dung vao shell hien tai
source "$HOME/.sdkman/bin/sdkman-init.sh"
# Hoac them vao ~/.zshrc / ~/.bashrc de tu dong load:
# source "$HOME/.sdkman/bin/sdkman-init.sh"
5.2 Các lệnh SDKMAN hay dùng
# Xem danh sach JDK co the cai
sdk list java
# Cai Temurin 21 (LTS)
sdk install java 21.0.3-tem
# Cai Temurin 17 (LTS cu)
sdk install java 17.0.11-tem
# Switch sang Java 17 cho session hien tai
sdk use java 17.0.11-tem
# Dat Java 21 lam default
sdk default java 21.0.3-tem
# Xem version dang dung
sdk current java
# Kiem tra phien ban moi
sdk upgrade java
5.3 jEnv — lựa chọn thay thế trên macOS
Nếu bạn đã quen cài JDK qua Homebrew và muốn quản lý version mà không dùng SDKMAN:
# Cai jEnv
brew install jenv
# Them vao ~/.zshrc
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
# Dang ky JDK da cai vao jEnv
jenv add /Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
# Chon version mac dinh
jenv global 21.0.3
# Chon version cho thu muc hien tai (luu vao .java-version)
jenv local 17.0.11
6. Khi nào cần quản lý nhiều JDK?
Cần quản lý nhiều JDK khi:
- Làm việc với nhiều dự án yêu cầu version khác nhau
- Contribute open source — nhiều project vẫn build trên Java 11/17
- Test compatibility — check app có chạy đúng trên nhiều version không
- Dự án công ty cũ chạy Java 8 hoặc 11 — không thể upgrade ngay
Chỉ cần 1 version khi:
- Mới học, chưa có dự án cũ — Java 21 LTS là đủ
- Side project cá nhân — không có áp lực version cụ thể
- Đang học khóa học — Java 21 theo toàn bộ nội dung khóa này
7. So sánh các IDE phổ biến
| IntelliJ IDEA Community | VS Code + Extension Pack | Eclipse | |
|---|---|---|---|
| License | Miễn phí | Miễn phí | Miễn phí |
| Java support | Xuất sắc (built-in) | Tốt (qua extension) | Tốt (built-in) |
| UX/Giao diện | Mượt, hiện đại | Nhẹ, linh hoạt | Nặng hơn, phức tạp hơn |
| Refactoring | Rất mạnh | Cơ bản | Tốt |
| Memory | ~500MB RAM | ~200MB RAM | ~400MB RAM |
| Best for | Học Java, dự án thực tế | Dev đã quen VS Code, nhiều ngôn ngữ | Legacy project, enterprise cũ |
Khuyến nghị cho khóa học này: IntelliJ IDEA Community. Tất cả ví dụ và screenshot trong khóa dùng IntelliJ.
VS Code là lựa chọn tốt nếu bạn đã dùng nó cho JavaScript/Python — cài Extension Pack for Java là đủ để học. Nhược điểm: autocomplete và refactoring kém hơn IntelliJ.
Eclipse phổ biến ở các công ty có hệ thống cũ, ít được dùng cho dự án mới.
8. Bảng cài JDK nhanh theo OS
| OS | Lệnh cài | Verify |
|---|---|---|
| macOS (Homebrew) | brew install --cask temurin@21 | java --version |
| macOS (SDKMAN) | sdk install java 21.0.3-tem | java --version |
| Ubuntu/Debian | sudo apt install openjdk-21-jdk -y | java --version |
| Fedora/RHEL | sudo dnf install java-21-openjdk-devel -y | java --version |
| Windows | Tải .msi từ adoptium.net | java --version (CMD mới) |
| SDKMAN (mọi OS) | sdk install java 21.0.3-tem | sdk current java |
9. Deep Dive Oracle
Tài liệu chính thức:
- JDK 21 Installation Guide — hướng dẫn cài đặt Oracle JDK 21 trên tất cả OS
- Eclipse Temurin (Adoptium) — trang chính thức Temurin, download và docs
- SDKMAN Official Docs — hướng dẫn đầy đủ lệnh SDKMAN
- IntelliJ IDEA Community Docs — hướng dẫn bắt đầu với IntelliJ
Ghi chú thực tế: Adoptium (Eclipse Foundation) là tổ chức phi lợi nhuận phân phối Temurin — đây là lý do Temurin hoàn toàn miễn phí kể cả cho production. Oracle JDK từ Java 17+ yêu cầu trả phí license cho production — xem Oracle Java SE Subscription.
10. Liên hệ các bài khác
- JVM, JRE, JDK — bài này giải thích tại sao developer cần JDK chứ không phải JRE; hiểu sự khác biệt giúp bạn chọn đúng thứ cần cài và không bị lẫn lộn khi đọc tài liệu.
- Hello World — sau khi cài xong môi trường ở bài này, bài tiếp theo sẽ dùng JDK và IntelliJ để viết và chạy chương trình Java đầu tiên, kiểm chứng toàn bộ cài đặt hoạt động đúng.
11. Tóm tắt
- Cần 2 thứ để bắt đầu: JDK 21 (compiler + runtime) và IntelliJ IDEA Community (IDE).
- Dùng Eclipse Temurin 21 — miễn phí, phổ biến nhất, hỗ trợ đến 2031.
- Cài theo OS:
brew install --cask temurin@21(macOS),apt install openjdk-21-jdk(Ubuntu),.msitừ adoptium.net (Windows). - Luôn verify bằng
java --version— phải thấy21.x. - SDKMAN =
nvmcho Java — quản lý nhiều version JDK, switch bằng 1 lệnh. - IntelliJ IDEA Community miễn phí, đủ dùng cho toàn bộ khóa học và hầu hết dự án thực tế.
12. Tự kiểm tra
Q1Vì sao bài trước nói "developer luôn cài JDK", không phải JRE? Khác nhau cụ thể ở chỗ nào khi cài?▸
javac (compiler) + tool develop (javap, jdb, jar, jlink...). Developer cần compile .java sang .class, debug, build artifact — JRE thuần không có những cái đó. Thực tế: từ Java 9+, Oracle không còn release JRE standalone — chỉ có JDK. Khi bạn brew install --cask temurin@21 hay tải .msi Adoptium — đó là JDK đầy đủ, bao gồm JRE bên trong.Q2Bạn có 2 dự án: dự án A cần Java 11, dự án B cần Java 21. Bạn sẽ làm gì để làm việc với cả hai mà không phải gỡ cài đặt thủ công?▸
Dùng SDKMAN (macOS/Linux) để cài và switch JDK:
sdk install java 11.0.25-tem
sdk install java 21.0.5-tem
cd projectA && sdk use java 11.0.25-tem
cd projectB && sdk use java 21.0.5-temĐặt file .sdkmanrc trong mỗi project để tự switch khi cd vào. Trên Windows có thể dùng mise (hỗ trợ Java, Node, Python và nhiều runtime khác) hoặc jabba — đây là các version manager thực sự cho Java. Cấp IDE: IntelliJ và Eclipse cho phép chọn JDK riêng mỗi project.
Q3Sau khi cài JDK trên Windows, bạn mở Command Prompt cũ và gõ java --version — báo lỗi "not recognized". Tại sao? Bạn xử lý thế nào?▸
PATH lúc được mở. Installer thêm %JAVA_HOME%\bin vào PATH hệ thống nhưng CMD cũ giữ bản PATH cũ. Cách đơn giản nhất: đóng CMD cũ, mở CMD mới — PATH mới được load. Nếu vẫn lỗi: kiểm tra echo %JAVA_HOME% và echo %PATH%; nếu thiếu thì vào System Properties → Environment Variables thêm %JAVA_HOME%\bin vào PATH và mở CMD mới.Q4IntelliJ IDEA Community vs VS Code cho Java — khi nào bạn chọn cái nào?▸
Q5Vì sao nên cài JDK qua package manager (Homebrew, SDKMAN, apt) thay vì tải installer thủ công từ web rồi tự giải nén?▸
PATH và JAVA_HOME — tải .tar.gz về tự giải nén, bạn phải sửa shell config bằng tay, sai một dòng là java "not found". Thứ hai, update và quản lý version tập trung: sdk upgrade java hay brew upgrade kéo bản vá bảo mật mới, thay vì phải nhớ tự kiểm tra trang download. Thứ ba, khi cần nhiều JDK song song (Java 11 cho dự án cũ, Java 21 cho dự án mới), SDKMAN switch bằng 1 lệnh — cách thủ công buộc bạn đổi JAVA_HOME mỗi lần. Installer thủ công chỉ hợp lý trên Windows (file .msi của Adoptium tự set biến môi trường) hoặc môi trường không có quyền cài package manager.Bài tiếp theo: Hello World và cấu trúc một class Java
Bài này có giúp bạn hiểu bản chất không?
Hỏi đáp về bài này
Chưa có câu hỏi
Có gì chưa rõ trong bài? Đặt câu hỏi đầu tiên — câu trả lời từ cộng đồng giúp bạn (và người sau).
Đặt câu hỏi đầu tiên