dev toolsjavasdkman

Cài Đặt Java Bằng SDKMAN: Hướng Dẫn Toàn Diện Cho Java Developer

SDKMAN là một công cụ mạnh mẽ để quản lý nhiều phiên bản Java và các công nghệ khác trên nền JVM. Bài viết này hướng dẫn cách cài đặt SDKMAN và sử dụng nó để quản lý Java trên máy phát triển một cách dễ dàng.

10 thg 7, 20267 min readCập nhật 10 thg 7, 2026
Cài Đặt Java Bằng SDKMAN: Hướng Dẫn Toàn Diện Cho Java Developer

SDKMAN là gì?

SDKMAN! (Software Development Kit Manager) là một công cụ dùng để quản lý song song nhiều phiên bản của các Software Development Kit trên hầu hết các hệ điều hành nền Unix. Nó cung cấp Command Line Interface (CLI) và API tiện lợi để cài đặt, chuyển đổi, gỡ bỏ và liệt kê các candidate.

SDKMAN hỗ trợ nhiều công nghệ trên nền JVM, bao gồm:

  • Java (Oracle JDK, OpenJDK, Amazon Corretto, GraalVM, v.v.)
  • Gradle - Công cụ tự động hóa build
  • Maven - Công cụ quản lý dự án
  • Kotlin - Ngôn ngữ lập trình cho JVM
  • Scala - Ngôn ngữ lập trình hàm
  • Spring Boot CLI - Command line interface của Spring Boot
  • Và còn nhiều hơn nữa!

Vì sao nên dùng SDKMAN?

🔄 Quản lý phiên bản dễ dàng

Chuyển đổi giữa các phiên bản Java chỉ với một câu lệnh, rất phù hợp cho những dự án cần các phiên bản JDK khác nhau.

🚀 Quy trình cài đặt đơn giản

Bạn không cần tải thủ công, giải nén hay tự cấu hình environment variable. SDKMAN sẽ xử lý toàn bộ.

🌍 Hỗ trợ đa nền tảng

Hoạt động trên Linux, macOS và Windows (thông qua WSL hoặc Git Bash).

📦 Hỗ trợ nhiều vendor

Bạn có thể chọn nhiều Java distribution khác nhau như Oracle JDK, OpenJDK, Amazon Corretto, AdoptOpenJDK và nhiều lựa chọn khác.

Điều kiện chuẩn bị

Trước khi cài SDKMAN, hãy đảm bảo hệ thống của bạn đáp ứng các yêu cầu sau:

Để cài SDKMAN:

  • Hệ điều hành nền Unix (Linux, macOS, hoặc Windows với WSL/Git Bash)
  • curl hoặc wget đã được cài đặt
  • bash shell (phiên bản 3.2+)

Để cài Java/SDK (sau khi đã có SDKMAN):

  • zipunzip (cần để giải nén các SDK được tải về)

Bạn có thể kiểm tra các điều kiện trên bằng các lệnh sau:

code
# Check if curl is installed (required for SDKMAN installation)
curl --version
 
# Check bash version (required for SDKMAN)
bash --version
 
# Check if zip/unzip are available (needed later for SDK installations)
zip --version
unzip --version

Cài đặt SDKMAN

Bước 1: Cài SDKMAN

Mở terminal và chạy lệnh sau để cài SDKMAN:

code
curl -s "https://get.sdkman.io" | bash

Lệnh này sẽ:

  • Tải script cài đặt SDKMAN
  • Cài SDKMAN vào thư mục home của bạn (~/.sdkman)
  • Thêm các cấu hình cần thiết vào shell profile

Bước 2: Khởi tạo SDKMAN

Sau khi cài đặt xong, bạn cần khởi tạo SDKMAN trong terminal hiện tại:

code
source "$HOME/.sdkman/bin/sdkman-init.sh"

Ngoài ra, bạn cũng có thể mở một cửa sổ terminal mới và SDKMAN sẽ được khởi tạo tự động.

Bước 3: Xác minh cài đặt

Hãy kiểm tra xem SDKMAN đã được cài đúng chưa bằng cách xem version:

code
sdk version

Bạn sẽ thấy output tương tự:

code
SDKMAN!
script: 5.18.0
native: 0.4.6

Cài đặt Java bằng SDKMAN

Khi SDKMAN đã được cài xong, hãy cùng xem cách cài và quản lý các phiên bản Java.

Liệt kê các phiên bản Java có sẵn

Để xem tất cả các phiên bản Java đang có, dùng:

code
sdk list java

Lệnh này sẽ hiển thị danh sách đầy đủ các Java distribution và phiên bản:

code
================================================================================
Available Java Versions for Linux 64bit
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 Corretto      |     | 21.0.1       | amzn    |            | 21.0.1-amzn
               |     | 17.0.9       | amzn    |            | 17.0.9-amzn
               |     | 11.0.21      | amzn    |            | 11.0.21-amzn
               |     | 8.0.392      | amzn    |            | 8.0.392-amzn
 Graal CE      |     | 21.0.1       | graalce |            | 21.0.1-graalce
               |     | 17.0.9       | graalce |            | 17.0.9-graalce
 OpenJDK       |     | 21.0.1       | open    |            | 21.0.1-open
               |     | 17.0.9       | open    |            | 17.0.9-open
               |     | 11.0.21      | open    |            | 11.0.21-open
               |     | 8.0.392      | open    |            | 8.0.392-open
 Oracle        |     | 21.0.1       | oracle  |            | 21.0.1-oracle
               |     | 17.0.9       | oracle  |            | 17.0.9-oracle
================================================================================

Cài một phiên bản Java

Để cài một phiên bản Java cụ thể, dùng lệnh install với identifier tương ứng:

code
# Install the latest LTS version (Java 21)
sdk install java 21.0.1-open
 
# Install Java 17 (Previous LTS)
sdk install java 17.0.9-open
 
# Install Java 11 (Another LTS version)
sdk install java 11.0.21-open
 
# Install Amazon Corretto 17
sdk install java 17.0.9-amzn

Trong quá trình cài, SDKMAN sẽ hỏi bạn có muốn đặt phiên bản này làm mặc định hay không. Nhập Y nếu đồng ý hoặc N nếu không.

Cài phiên bản Java mới nhất

Để cài phiên bản Java mới nhất mà không cần chỉ định chính xác version:

code
sdk install java

SDKMAN sẽ cài bản stable mới nhất và đặt nó làm phiên bản Java mặc định.

Quản lý các phiên bản Java

Chuyển đổi giữa các phiên bản Java

Dùng một phiên bản cụ thể cho terminal hiện tại

code
sdk use java 17.0.9-open

Lệnh này chỉ chuyển sang Java 17 cho terminal session hiện tại.

Đặt phiên bản Java mặc định

code
sdk default java 21.0.1-open

Lệnh này sẽ đặt Java 21 làm phiên bản mặc định cho mọi terminal session mới.

Liệt kê các phiên bản Java đã cài

Để xem tất cả các phiên bản Java đã được cài trên hệ thống:

code
sdk list java | grep installed

Hoặc dùng:

code
sdk current java

Lệnh này sẽ hiển thị phiên bản Java đang active.

Xác minh cài đặt Java

Sau khi cài hoặc chuyển phiên bản Java, hãy xác minh lại:

code
java -version
javac -version
echo $JAVA_HOME

Bạn sẽ thấy output thể hiện đúng phiên bản Java và đường dẫn JAVA_HOME.

Ngoài ra, bạn cũng có thể tự cấu hình JAVA_HOME trong .bash_profile hoặc .zshrc:

code
export JAVA_HOME=${SDKMAN_CANDIDATES_DIR}/java/${CURRENT}

Các tính năng nâng cao của SDKMAN

Cấu hình môi trường

SDKMAN tự động thiết lập biến môi trường JAVA_HOME khi bạn chuyển phiên bản Java. Bạn có thể kiểm tra bằng:

code
echo $JAVA_HOME
# Output: /Users/username/.sdkman/candidates/java/current

Gỡ cài đặt phiên bản Java

Để xóa một phiên bản Java không còn dùng nữa:

code
sdk uninstall java 11.0.21-open

Cập nhật SDKMAN

Hãy giữ SDKMAN luôn ở phiên bản mới nhất bằng:

code
sdk update

Xóa archive và file tạm

Dọn các file archive đã tải và file tạm:

code
sdk flush archives
sdk flush temp

Phiên bản Java theo từng dự án

Sử dụng file .sdkmanrc

Bạn có thể tạo file .sdkmanrc ở thư mục gốc của dự án để chỉ định phiên bản Java cho dự án đó:

code
# Navigate to your project directory
cd /path/to/your/project
 
# Create .sdkmanrc file
echo "java=17.0.9-open" > .sdkmanrc
 
# Enable auto-switching (one-time setup)
sdk config
# Set sdkman_auto_env=true

Từ đó về sau, mỗi khi bạn cd vào thư mục dự án, SDKMAN sẽ tự động chuyển sang phiên bản Java đã được chỉ định.

Xử lý các lỗi thường gặp

Lỗi 1: Command Not Found

Nếu bạn gặp lỗi "sdk: command not found":

code
# Check if SDKMAN is properly sourced
echo $SDKMAN_DIR
 
# If empty, manually source SDKMAN
source "$HOME/.sdkman/bin/sdkman-init.sh"
 
# Add to your shell profile permanently
echo 'source "$HOME/.sdkman/bin/sdkman-init.sh"' >> ~/.bashrc
# or for zsh users
echo 'source "$HOME/.sdkman/bin/sdkman-init.sh"' >> ~/.zshrc

Lỗi 2: Permission Denied

Nếu bạn gặp lỗi liên quan đến quyền truy cập:

code
# Check SDKMAN directory permissions
ls -la ~/.sdkman
 
# Fix permissions if needed
chmod -R 755 ~/.sdkman

Lỗi 3: Vấn đề mạng

Nếu việc tải xuống thất bại do sự cố mạng:

code
# Set proxy if needed
export http_proxy=http://your-proxy:port
export https_proxy=https://your-proxy:port
 
# Or configure SDKMAN with different mirror
sdk config

Best practices

1. Giữ các phiên bản LTS

Hãy cài và duy trì các phiên bản Long Term Support (LTS) để đảm bảo tính ổn định:

  • Java 8 (LTS đến năm 2030)
  • Java 11 (LTS đến năm 2026)
  • Java 17 (LTS đến năm 2029)
  • Java 21 (LTS đến năm 2031)

2. Dùng phiên bản riêng cho từng dự án

Tạo file .sdkmanrc cho từng dự án để đảm bảo tính đồng nhất trong team:

code
# Example .sdkmanrc for a Spring Boot project
java=17.0.9-open
gradle=8.4
maven=3.9.5

3. Cập nhật thường xuyên

Hãy giữ các bản cài Java luôn được cập nhật:

code
# Update SDKMAN itself
sdk update
 
# Check for newer versions
sdk list java
 
# Upgrade to newer patch versions
sdk install java 21.0.2-open
sdk default java 21.0.2-open
sdk uninstall java 21.0.1-open

4. Dọn dẹp định kỳ

Xóa các phiên bản không còn dùng để tiết kiệm dung lượng ổ đĩa:

code
# List installed versions
sdk list java | grep installed
 
# Remove old versions
sdk uninstall java 8.0.382-open
 
# Clean up archives
sdk flush archives

Kết luận

SDKMAN là một công cụ gần như không thể thiếu với Java developer thường xuyên làm việc với nhiều phiên bản Java hoặc các công nghệ khác trên nền JVM. Nó giúp đơn giản hóa việc cài đặt, quản lý và chuyển đổi giữa các Java distribution cũng như version khác nhau.

Những lợi ích chính khi dùng SDKMAN:

  • Quản lý phiên bản dễ dàng - Chuyển đổi giữa các phiên bản Java chỉ với một lệnh
  • Hỗ trợ nhiều vendor - Lựa chọn giữa Oracle, OpenJDK, Amazon Corretto và nhiều hơn nữa
  • Cấu hình theo từng dự án - Dùng .sdkmanrc để đồng bộ trong team
  • Thiết lập môi trường tự động - Không cần cấu hình JAVA_HOME thủ công
  • Tương thích đa nền tảng - Hoạt động trên Linux, macOS và Windows (WSL)

Dù bạn đang bảo trì ứng dụng cũ trên Java 8, phát triển microservice hiện đại với Java 17, hay thử nghiệm các tính năng mới nhất của Java 21, SDKMAN đều giúp việc quản lý môi trường Java trở nên mượt mà hơn rất nhiều.

Hãy bắt đầu dùng SDKMAN ngay hôm nay để trải nghiệm cách quản lý phiên bản Java đơn giản và hiệu quả hơn!


Tài liệu tham khảo