Все, що сказав у своїй відповіді Twisty Impersonator, є правильним. Ідея про додавання змінної шляху користувача була підкреслена, і я вважаю, що наслідки цієї різниці потребують додаткового лікування.
Шлях =% Шлях% (Система); % Шлях% (Користувач)
При виконанні програми, що виконується (або будь-який виконуваний скрипт, наприклад, .bat
, .vbs
і т.д.) , ви не повинні надавати повний шлях.
Наприклад, щоб запустити java
, ви можете ввести будь-яке з них:
C:/Program Files (x86)/Java/jre6/bin/java -version
java.exe -version
java -version
Перший приклад використовує повністю кваліфікований шлях. Це завжди використовуватиме версію Java у цьому точному шляху.
Другий приклад пройде через кожен із каталогів %Path%
змінної оточення, шукаючи виконуваний файл з назвою java.exe
. Він запустить перший, який знайдеться, і припинить пошук. Якщо java.exe
десь на ім'я є два файли, то використовується %Path%
лише перший знайдений файл .
Третій приклад, як і другий, буде переглядати каталоги, перелічені в %Path%
. Крім того, оскільки розширення файлу не було передбачено, до списку файлів, що розширюються, додається до імені файлу у порядку, визначеному в %PATHEXT%
змінній середовища. Якщо є кілька файлів з ім'ям java.com
, java.exe
, java.bat
і т.д. де - то на %Path%
, використовується тільки перший зі знайдених.
Ви можете переглянути список розширень виконавчих шляхів у вашій системі, створивши такий пакетний файл:
@echo off
echo %PATHEXT%
pause
На моїй машині це:
.COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC; .PY
Що все це означає?
На відміну від іншої змінної середовища, шлях користувача не дозволяє перекрити системний шлях. Зовсім навпаки. З наведених вище прикладів є багато випадків, коли ви можете змінити типову версію Java. Однак, якщо в системному шляху вже вказана версія Java, то це ВСЕГДА буде знайдена перша, оскільки шлях шукається в порядку, зліва направо, а шлях користувача додається праворуч -бічна сторона, системний шлях зліва.
Що я можу з цим зробити?
Якщо у вас немає доступу до змінних системного середовища, ви не можете змінити програми за замовчуванням на системному шляху, використовуючи шлях користувача. (Насправді це має бути саме так, інакше деякі програми перестануть працювати належним чином, і це відкриє вашу систему для злому шкідливого програмного забезпечення. Ніхто цього не хоче.)
Натомість ви повинні використовувати повністю кваліфікований шлях, якщо вам потрібно використовувати конкретну версію.