Tất cả những gì mà Twisty Impersonator nói trong câu trả lời của họ là chính xác. Ý tưởng rằng biến đường dẫn người dùng được thêm vào đã được nêu bật và tôi tin rằng hậu quả của sự khác biệt đó đòi hỏi một số điều trị bổ sung.
Đường dẫn =% Đường dẫn% (Hệ thống); % Đường dẫn% (Người dùng)
Khi bạn thực hiện một chương trình thực thi (hoặc bất kỳ kịch bản thực thi, chẳng hạn như .bat
, .vbs
vv), bạn không cần phải cung cấp đầy đủ đường dẫn.
Ví dụ, để chạy java
, bạn có thể nhập bất kỳ thứ nào trong số này:
C:/Program Files (x86)/Java/jre6/bin/java -version
java.exe -version
java -version
Ví dụ đầu tiên sử dụng một đường dẫn đầy đủ. Điều này sẽ luôn sử dụng phiên bản Java tại đường dẫn chính xác đó.
Ví dụ thứ hai sẽ đi qua từng thư mục trong %Path%
biến môi trường, tìm kiếm một tệp thực thi có tên java.exe
. Nó sẽ chạy cái đầu tiên được tìm thấy và ngừng tìm kiếm. Nếu có hai tệp được đặt tên java.exe
ở đâu đó trên %Path%
, chỉ có tệp đầu tiên được tìm thấy được sử dụng.
Ví dụ thứ ba, như ví dụ thứ hai, sẽ lặp qua các thư mục được liệt kê trong %Path%
. Ngoài ra, do phần mở rộng tệp không được cung cấp, nên một danh sách các phần mở rộng tệp thực thi được thêm vào tên của tệp, theo thứ tự được chỉ định trong %PATHEXT%
biến môi trường. Nếu có một số tập tin có tên java.com
, java.exe
, java.bat
vv ở đâu đó trên %Path%
, chỉ có một tìm thấy đầu tiên được sử dụng.
Bạn có thể xem danh sách các phần mở rộng đường dẫn thực thi trên hệ thống của mình bằng cách tạo tệp bó sau:
@echo off
echo %PATHEXT%
pause
Trên máy của tôi, đây là:
.COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC; .PY
Tất cả điều này có nghĩa là gì?
Trong chiều ngược lại để biến môi trường khác, con đường dùng không cho phép bạn ghi đè lên các đường dẫn hệ thống. Hoàn toàn ngược lại là trường hợp. Từ các ví dụ trên, có nhiều trường hợp bạn có thể thay đổi phiên bản mặc định của Java. Tuy nhiên, nếu đã có phiên bản Java được liệt kê trong đường dẫn hệ thống, thì đó là phiên bản LUÔN LUÔN được tìm thấy trước tiên, bởi vì đường dẫn được tìm kiếm theo thứ tự, từ trái sang phải và đường dẫn người dùng được nối ở bên phải bên tay, với đường dẫn hệ thống bên trái.
Tôi có thể làm gì với nó?
Nếu bạn không có quyền truy cập vào các biến môi trường hệ thống, bạn không thể ghi đè các chương trình mặc định trên đường dẫn hệ thống bằng cách sử dụng đường dẫn người dùng. (Trên thực tế, nó phải theo cách này hoặc một số chương trình nhất định sẽ ngừng hoạt động chính xác và nó sẽ mở hệ thống của bạn để giả mạo phần mềm độc hại. Không ai muốn điều đó.)
Thay vào đó, bạn phải sử dụng một đường dẫn đủ điều kiện nếu bạn phải sử dụng một phiên bản cụ thể.