Twisty Impersonator'ın yanıtlarında söylediği her şey doğrudur. Kullanıcı yolu değişkeninin eklendiği fikri vurgulanmıştır ve bu farkın sonuçlarının ek bir tedavi gerektirdiğine inanıyorum.
Yol =% Yol% (Sistem); % Yol% (Kullanıcı)
Eğer (gibi ya da herhangi bir yürütülebilir komut dosyası, bir yürütülebilir program çalıştırdığınızda .bat
, .vbs
vs.) Eğer tam yolunu sağlamak gerekmez.
Örneğin, çalıştırmak java
için aşağıdakilerden herhangi birini yazabilirsiniz:
C:/Program Files (x86)/Java/jre6/bin/java -version
java.exe -version
java -version
İlk örnek tam nitelikli bir yol kullanır. Bu, Java sürümünü her zaman tam olarak kullanır.
İkinci örnek, %Path%
ortam değişkenindeki her bir dizinde, adlı yürütülebilir dosyayı arayarak geçer java.exe
. İlk bulunanı çalıştırır ve aramayı durdurur. Üzerinde bir yerde iki dosya varsa , sadece ilk bulunan dosya kullanılır.java.exe
%Path%
Üçüncü örnek, ikincisi gibi, 'de listelenen dizinleri yineleyecektir %Path%
. Ayrıca, bir dosya uzantısı sağlanmadığı için, yürütülebilir dosya uzantılarının listesi %PATHEXT%
ortam değişkeninde belirtilen sırayla dosyanın adına eklenir . Olarak adlandırılan bir kaç dosya varsa java.com
, java.exe
, java.bat
üzerinde, vb yerlerde %Path%
, sadece ilk bir tane buldum kullanılır.
Aşağıdaki toplu iş dosyasını oluşturarak sisteminizdeki yürütülebilir yol uzantılarının listesini görebilirsiniz:
@echo off
echo %PATHEXT%
pause
Makinemde bunlar:
.COM, .exe, BAT, .CMD; .VBS; .VBE; .JS; .JSE; .wsf; .WSH; .msc; .py
Bütün bunlar ne anlama geliyor?
Gelen tezat diğer çevre değişkeni, kullanıcı yol sistem yolunu geçersiz kılmak için izin vermez. Tam tersi durum söz konusudur. Yukarıdaki örneklerden, Java'nın varsayılan sürümünü değiştirmek için kullanabileceğiniz birçok durum vardır. Ancak, sistem yolunda listelenmiş bir Java sürümü varsa, bu yol her zaman ilk sırada bulunur, çünkü yol sırayla, soldan sağa aranır ve kullanıcı yolu sağa eklenir sol taraftaki sistem yolu ile.
Bu konuda ne yapabilirim?
Sistem ortamı değişkenlerine erişiminiz yoksa, kullanıcı yolunu kullanarak sistem yolundaki varsayılan programları geçersiz kılamazsınız. (Aslında, bu şekilde olmalı veya bazı programlar düzgün çalışmayı durduracak ve sisteminizi kötü amaçlı yazılımların kurcalanmasına açacaktır. Kimse bunu istemez.)
Bunun yerine, belirli bir sürümü kullanmanız gerekiyorsa tam nitelikli bir yol kullanmanız gerekir.