Khi Java IntelliSense ngừng hoạt độngHiếm có điều gì làm gián đoạn một buổi lập trình hiệu quả nhanh hơn việc IDE bị mất đi "bộ não". Bạn đang thực hiện tái cấu trúc mã (refactor), và đột nhiên, các đường gạch chân đỏ biến mất, tính năng tự động hoàn tất (autocomplete) ngừng phản hồi, và một thông báo dai dẳng xuất hiện ở góc dưới bên phải:
The Language Support for Java server crashed 5 times in the last 3 minutes. The server will not be restarted.
Lỗi này có nghĩa là công cụ Eclipse JDT.LS—phần backend vận hành tiện ích này—đã gặp phải một lỗi nghiêm trọng. Nếu không có nó, VS Code chỉ đơn thuần là một trình soạn thảo văn bản cơ bản. Để khắc phục, chúng ta cần tìm hiểu kỹ hơn thay vì chỉ nhìn vào thông báo bật lên và giải quyết các vấn đề cấu hình hoặc bộ nhớ đệm bên dưới.
Bước 1: Kiểm tra Log thay vì phỏng đoánTrước khi thay đổi các thiết lập, hãy tìm hiểu chính xác lý do tại sao máy chủ ngừng hoạt động. Các tệp nhật ký (logs) thường cho biết bạn đang gặp phải vấn đề rò rỉ bộ nhớ hay không tương thích phiên bản.
- Mở bảng Output trong VS Code (View > Output).- Chọn Language Support for Java từ menu thả xuống ở bên phải.- Tìm kiếm các stack trace. Các lỗi cụ thể như
java.lang.OutOfMemoryErrorhoặcUnsupportedClassVersionErrorsẽ cho bạn biết chính xác giải pháp nào cần ưu tiên.## Giải pháp 1: Dọn dẹp Workspace của Language ServerTiện ích này duy trì một chỉ mục (index) của dự án để tăng tốc độ xử lý. Nếu chỉ mục này bị hỏng—có thể do hệ thống tắt đột ngột—máy chủ sẽ bị sập mỗi khi cố gắng đọc các tệp bị lỗi đó. Đây là cách khắc phục phổ biến nhất. - Nhấn
Ctrl+Shift+P(hoặcCmd+Shift+Ptrên macOS).- Tìm kiếm "Java: Clean Java Language Server Workspace".- Nhấp vào Restart and Delete khi được hỏi.VS Code sẽ xóa bộ nhớ đệm nội bộ và đánh chỉ mục lại các tệp của bạn. Đối với các dự án vừa và nhỏ, việc này thường mất chưa đầy 30 giây và khắc phục được phần lớn các lỗi sập máy chủ liên tục.
Giải pháp 2: Đồng bộ phiên bản JDK chạy tiện íchMột sự nhầm lẫn thường gặp ở đây: JDK bạn sử dụng để build dự án khác với JDK được sử dụng để chạy tiện ích VS Code. Kể từ phiên bản 1.0.0, tiện ích của Red Hat yêu cầu JDK 17 trở lên để hoạt động. Nếu bạn cố gắng chạy công cụ này trên JDK 11, nó sẽ bị sập ngay lập tức.
Kiểm tra tệp settings.json của bạn để đảm bảo java.jdt.ls.java.home trỏ đến một runtime hiện đại:
{
"java.jdt.ls.java.home": "/usr/lib/jvm/java-17-openjdk",
"java.configuration.runtimes": [
{
"name": "JavaSE-1.8",
"path": "/duong/dan/den/old-jdk-8",
"default": true
}
]
}
Với thiết lập này, dự án của bạn vẫn biên dịch bằng Java 8, nhưng các công cụ của IDE vẫn hoạt động ổn định trên Java 17.
Giải pháp 3: Cấp thêm bộ nhớ cho máy chủNếu bạn đang làm việc trên một dự án Maven đa mô-đun khổng lồ (khoảng hơn 50 mô-đun hoặc hàng nghìn lớp), mức bộ nhớ mặc định 1GB là không đủ. Khi máy chủ đạt đến giới hạn, nó sẽ kích hoạt lỗi OutOfMemoryError và ngừng hoạt động.
- Mở Cài đặt (
Ctrl+,) và tìm kiếmjava.jdt.ls.vmargs.- Tìm tham số-Xmx.- Tăng giá trị lên-Xmx2Ghoặc-Xmx4G.Một thiết lập hiệu suất cao điển hình sẽ như sau:
"java.jdt.ls.vmargs": "-XX:+UseG1GC -XX:+UseStringDeduplication -Xmx2G -Xms1G"
Giải pháp 4: Xóa bộ nhớ đệm thủ côngĐôi khi lệnh "Clean Workspace" không thể thực hiện được vì tiện ích đã bị hỏng nặng đến mức không thể phản hồi. Trong trường hợp này, bạn phải xóa thư mục lưu trữ thủ công khi VS Code đã đóng.
Hãy truy cập các đường dẫn sau và xóa thư mục workspaceStorage:
- Windows:
%APPDATA%\Code\User\workspaceStorage- macOS:~/Library/Application Support/Code/User/workspaceStorage- Linux:~/.config/Code/User/workspaceStorageĐừng lo lắng về việc mất mã nguồn; thư mục này chỉ chứa các chỉ mục tạm thời và siêu dữ liệu. VS Code sẽ tự động xây dựng lại mọi thứ vào lần tới khi bạn mở dự án.

