Wszystko, co powiedział Twisty Impersonator w swojej odpowiedzi, jest poprawne. Podkreślono pomysł dodania zmiennej ścieżki użytkownika i uważam, że konsekwencje tej różnicy wymagają dodatkowego potraktowania.
Ścieżka =% Ścieżka% (system); % Path% (użytkownik)
Po uruchomieniu program wykonywalny (lub dowolny skrypt wykonywalny, takich jak .bat
, .vbs
itd) nie trzeba, aby zapewnić pełną ścieżkę.
Na przykład, aby uruchomić java
, możesz wpisać dowolny z tych:
C:/Program Files (x86)/Java/jre6/bin/java -version
java.exe -version
java -version
Pierwszy przykład wykorzystuje w pełni kwalifikowaną ścieżkę. To zawsze będzie używać wersji Java pod tą samą ścieżką.
Drugi przykład przejdzie przez każdy katalog w %Path%
zmiennej środowiskowej, szukając pliku wykonywalnego o nazwie java.exe
. Uruchomi pierwszy znaleziony i przestanie szukać. Jeśli istnieją dwa pliki o nazwie java.exe
gdzieś na %Path%
stosowany jest tylko pierwszy znaleziony.
Trzeci przykład, podobnie jak drugi, będzie iterował katalogi wymienione w %Path%
. Ponadto, ponieważ nie podano rozszerzenia pliku, do nazwy pliku dołączana jest lista wykonywalnych rozszerzeń plików w kolejności określonej w %PATHEXT%
zmiennej środowiskowej. Jeśli istnieje kilka plików o nazwach java.com
, java.exe
, java.bat
, itd. Gdzieś na %Path%
stosowany jest tylko pierwszy znaleziony.
Możesz wyświetlić listę wykonywalnych rozszerzeń ścieżek w systemie, tworząc następujący plik wsadowy:
@echo off
echo %PATHEXT%
pause
Na moim komputerze są to:
.COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC; .PY
Co to wszystko znaczy?
W przeciwieństwie do innych zmiennych środowiskowych ścieżka użytkownika nie pozwala na przesłonięcie ścieżki systemowej. Jest dokładnie odwrotnie. Z powyższych przykładów jest wiele przypadków, w których możesz zmienić domyślną wersję Java. Jeśli jednak w ścieżce systemowej znajduje się już wersja Java, jest to wersja ZAWSZE znajdowana jako pierwsza, ponieważ ścieżka jest przeszukiwana w kolejności od lewej do prawej, a ścieżka użytkownika jest dołączana po prawej stronie - ręka, ze ścieżką systemową po lewej stronie.
Co mogę z tym zrobić?
Jeśli nie masz dostępu do systemowych zmiennych środowiskowych, nie możesz zastąpić domyślnych programów na ścieżce systemowej przy użyciu ścieżki użytkownika. (W rzeczywistości musi tak być, w przeciwnym razie niektóre programy przestałyby działać poprawnie i otworzyłyby system na próby manipulacji przez złośliwe oprogramowanie. Nikt tego nie chce).
Zamiast tego musisz użyć w pełni kwalifikowanej ścieżki, jeśli musisz użyć określonej wersji.