2010年9月17日 星期五

系統存取環境變數的順序

  1. Autoexec.bat
  2. 系統變數 ( 系統內容 -> 環境變數 -> 系統變數)
  3. 使用者變數 ( 系統內容 -> 環境變數 -> 使用者變數)
相同變數名稱同時經由上述三種方式設定之後,在『使用者變數』所設定的變數值,會蓋過在『系統變數』或『Autoexec.bat』所設定的值;而在『系統變數』所設定的值,會蓋過在『Autoexec.bat』所設定的值。(這段…怪怪的…要再研究;不過存取環境變數的過程如下)

也就是說尋找變數的過程為 :
Autoexec.bat -->  系統變數 -->  使用者變數


Windows系統內建的常見環境變數

  • %SystemDrive%:系統磁碟機,預設是C:
  • %SystemRoot%:系統根目錄,預設是C:\WINNT或C:\WINDOWS
  • %SystemDirectory%:系統目錄,預設是C:\WINNT\System32或C:\WINDOWS\System32
  • %WinDir%:Windows目錄,預設是C:\WINNT或C:\WINDOWS
  • %ProgramFiles%:應用程式目錄,預設是C:\Program Files
  • %Temp%、%Tmp%:暫存檔目錄 %HomeDrive%:使用者目錄的磁碟機
  • %HomePath%:使用者家目錄
  • %date% : 日期
  • %time% : 時間
  •  
(以上環境變數可以『檔案總管』試之,或在DOS視窗以echo指令顯示其值,也可以在執行的指令視窗內輸入%XXX% 「XXX 表示你的變數」來執行;以下的環境變數隻能以DOS視窗以echo指令顯示其值)

  • %OS%:作業系統名稱,其值固定為Windows_NT
  • %UserDomain%:包含使用者帳號的網域名稱,或者電腦名稱
  • %UserName%:使用者帳號名稱


注意 : 在 path 這個環境變數里,用了「分號」來區隔許多不同的路徑
而 path 這個變數,是系統預設當你在執行某個指令時,會到此
path 變數里的各個路徑(以「分號」隔開)來尋找是不是有此指令
或是程式(.exe)

範例 :
                   

將 jdk 的 path 設成 D:\Java\jdk1.6.0_22


則 java version 會去找 D:\Java\jdk1.6.0_22\bin 而顯示版本

將 jdk 的 path 設成 D:\Java\jdk1.5.0_16\bin

則 java version 會去找 D:\Java\jdk1.5.0_16\bin 而顯示版本


ps : 在這其實我的 path 裡是設定二組 path 如下
        D:\Java\jdk1.6.0_22\bin;D:\Java\jdk1.5.0_16\bin;
        當在 cmd 底下執行 java -version 時會先去找第一組
        path ,如果第一組 path 沒有需要的指令或是程式
        則會依順再去找第二組的 path,如果第二組 path
        還是沒有的話,那麼就會由系統預設的path來執行了

補充 : 
                      瞭解一下java.exe 如何尋找JRE庫的:

當在 command 下執行java.exe,操作系統尋找JRE的方式如下:
1) 先找當前目錄下有沒有JRE
2) 再找父目錄下有沒有JRE
3) 接著在PATH路徑中找JRE
4) 註冊表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\ 查看   CurrentVersion的鍵值指向哪個JRE














沒有留言:

張貼留言