Chúng ta cần phân biệt giữa hai biến môi trường được thảo luận ở đây thay thế cho nhau. Một là biến JAVA_HOME . Cái khác là biến Path . Bất kỳ quá trình nào tham chiếu biến JAVA_HOME đều tìm kiếm đường dẫn tìm kiếm tới JDK, không phải JRE. Việc sử dụng biến JAVA_HOME không có nghĩa đối với chính trình biên dịch Java. Trình biên dịch nhận thức được vị trí của chính nó. Biến này có nghĩa là để phần mềm khác dễ dàng xác định vị trí trình biên dịch hơn. Biến này thường được sử dụng bởi phần mềm IDE để biên dịch và xây dựng các ứng dụng từ mã nguồn Java. Ngược lại, trình thông dịch Windows CMD và nhiều phần mềm bên thứ nhất và bên thứ ba khác tham chiếu biến Đường dẫn, không phải biến JAVA_HOME.
Trường hợp sử dụng 1: Biên dịch từ CMD
Vì vậy, ví dụ, nếu bạn không sử dụng bất kỳ phần mềm IDE nào và bạn chỉ muốn có thể biên dịch từ CMD, độc lập với thư mục làm việc hiện tại của bạn, thì điều bạn muốn là đặt biến Đường dẫn chính xác. Trong trường hợp của bạn, bạn thậm chí không cần biến JAVA_HOME. Bởi vì CMD đang sử dụng Path, không phải JAVA_HOME để định vị trình biên dịch Java.
Trường hợp sử dụng 2: Biên dịch từ IDE
Tuy nhiên, nếu bạn đang sử dụng một số phần mềm IDE, thì trước tiên bạn phải xem tài liệu này. Nó có thể yêu cầu JAVA_HOME được đặt, nhưng nó cũng có thể sử dụng một tên biến khác cho cùng mục đích. Tiêu chuẩn thực tế trong nhiều năm qua là JAVA_HOME, nhưng điều này có thể không phải luôn luôn như vậy.
Trường hợp sử dụng 3: Biên dịch từ IDE và CMD
Nếu ngoài phần mềm IDE, bạn cũng muốn có thể biên dịch từ CMD, độc lập với thư mục làm việc hiện tại của bạn, thì ngoài biến JAVA_HOME, bạn cũng có thể cần thêm đường dẫn tìm kiếm JDK vào biến Đường dẫn.
JAVA_HOME so với đường dẫn
Nếu vấn đề của bạn liên quan đến việc biên dịch Java, thì bạn muốn kiểm tra biến JAVA_HOME và Đường dẫn (nếu có). Nếu vấn đề của bạn liên quan đến việc chạy các ứng dụng Java, thì bạn muốn kiểm tra biến Đường dẫn của mình.
Biến đường dẫn được sử dụng phổ biến trên tất cả các hệ điều hành. Bởi vì nó được xác định bởi hệ thống và vì đó là biến mặc định được sử dụng để định vị JRE, nên hầu như không có vấn đề gì khi chạy các ứng dụng Java. Đặc biệt không phải trên Windows, nơi các trình cài đặt phần mềm thường thiết lập mọi thứ cho bạn. Nhưng nếu bạn đang cài đặt thủ công, điều an toàn nhất có lẽ là bỏ qua biến JAVA_HOME hoàn toàn và chỉ sử dụng biến Đường dẫn cho mọi thứ, cho cả JDK và JRE. Bất kỳ phiên bản gần đây nào của phần mềm IDE đều có thể chọn và sử dụng nó.
Liên kết
Các liên kết tượng trưng có thể cung cấp một cách khác để tham chiếu đường tìm kiếm JDK bằng cách cõng một trong các biến môi trường hiện có.
Tôi không chắc chắn về các phiên bản phát hành Oracle / Sun JDK / JRE trước đây, nhưng ít nhất trình cài đặt cho jdk1.8.0_74 nối thêm đường dẫn tìm kiếm C:\ProgramData\Oracle\Java\javapath
vào biến Path và nó đặt nó ở đầu giá trị chuỗi. Thư mục này chứa các liên kết tượng trưng đến java.exe, javaw.exe và javaws.exe trong thư mục JRE.
Vì vậy, ít nhất là với JDK Java 8 và có lẽ là độc lập JRE của Java 8, không cần phải thực hiện cấu hình biến môi trường cho JRE. Miễn là bạn sử dụng gói trình cài đặt để thiết lập nó. Có thể có sự khác biệt về cài đặt Windows của bạn tuy nhiên. Lưu ý rằng Oracle JRE đi kèm với JDK.
Nếu bạn từng thấy rằng cấu hình Java JDK của bạn đang sử dụng phiên bản trình biên dịch sai hoặc nó dường như đang hoạt động bằng phép thuật, mà không được xác định rõ ràng như vậy (không cần bỏ chính tả), thì bạn có thể có một liên kết tượng trưng ở đâu đó trong các biến môi trường của bạn . Vì vậy, bạn có thể muốn kiểm tra symlink.