環境變量和用戶變量有什么區別?


搭建編譯環境時為什么有時候要設置環境變量,而有時又設置用戶變量? 

環境變量分為系統環境變量和用戶環境變量。 
你所說的環境變量是指系統環境變量,對所有用戶起作用 
而用戶環境變量只對當前用戶起作用。 

例如你要用java,那么你把java的bin目錄加入到path變量下面,那么它就是系統環境變量,所用用戶登陸,在命令行輸入java都會有java的幫助信息出來。而如果你在某個用戶的變量下面新建一個變量,那么它就只對這個用戶有用,當你以其他用戶登陸時這個變量就和不存在一樣。

這個問題在linux下面就相對好理解一些,系統變量都在/etc/profile文件里面,而用戶的變量則在~/.bash_profile(如果用的是bash的話),每個用戶的用戶目錄對其他用戶不可見。假設有a,b,c三個用戶,你在a的變量文件中寫入語句在屏幕上述出a,在b的輸出b,c的什么都不輸出,系統文件輸出sys,那么當你用a用戶登陸時,輸出a;用戶b登陸輸出b,用戶c則輸出sys.


補充: 
在windows下面用到少設置環境變量的時候很少,例如你想只用jdk而不想用jbuilder,那么你就得自己設置jdk的path,classpath等環境變量。 
在linux下,我說的的那些文件是系統自動生成的,我們可以手動更改他已達到我所說的效果。它們是在各自所屬的用戶登陸時自動運行的Windows下JAVA環境變量的設置祥解
Windows下JAVA用到的環境變量主要有3個,JAVA_HOME、CLASSPATH、PATH。下面逐個分析。 
JAVA_HOME指向的是JDK的安裝路徑,如x:\JDK_1.4.2,在這路徑下你應該能夠找到bin、lib等目錄。值得一提的是,JDK的安裝路徑可以選擇任意磁盤目錄,不過建議你放的目錄層次淺一點,如果你放的目錄很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx……
那么,下面的步驟和以后的應用你都要受累了,呵呵。設置方法: 
JAVA_HOME=x:\JDK_1.4.2 
PATH環境變量原來Windows里面就有,你只需修改一下,使他指向JDK的bin目錄,這樣你在控制台下面編譯、執行程序時就不需要再鍵入一大串路徑了。設置方法是保留原來的PATH的內容,並在其中加上%JAVA_HOME%\bin
(注,如果你對DOS批處理不了解,你可能不明白%%引起來的內容是什么意思;其實這里是引用上一步設定好的環境變量JAVA_HOME,你寫成x:\JDK_1.4.2也是可以的;你可以打開一個控制台窗口,輸入echo
%JAVA_HOME%來看一下你的設置結果) : 
PATH=%JAVA_HOME%\bin;%PATH% 
同樣,%PATH%是引用以前你設置的PATH環境變量,你照抄以前的值就行了。 
CLASSPATH環境變量我放在最后面,是因為以后你出現的莫名其妙的怪問題80%以上都可能是由於CLASSPATH設置不對引起的,所以要加倍小心才行。 
CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar 
首先要注意的是最前面的".\;",如果你看不清,我給你念念——句點反斜杠分號。這個是告訴JDK,搜索CLASS時先查找當前目錄的CLASS文件——為什么這樣搞,這是由於LINUX的安全機制引起的,LINUX用戶很明白,WINDOWS用戶就很難理解(因為WINDOWS默認的搜索順序是先搜索當前目錄的,再搜索系統目錄的,再搜索PATH環境變量設定的)
,所以如果喜歡盤根究底的朋友不妨研究一下LINUX。 
為什么CLASSPATH后面指定了tools.jar這個具體文件?不指定行不行?顯然不行,行的話我還能這么羅索嘛!:) 
這個是由java語言的import機制和jar機制決定的,你可以查資料解決。 

呵呵,具體的設定方法: win2k\xp用戶右鍵點擊我的電腦->屬性->高級->環境變量,修改下面系統變量那個框里的值就行了。 
win9x用戶修改autoexec.bat文件,在其末尾加入: 
set JAVA_HOME=x:\JDK_1.4.2 
set PATH=%JAVA_HOME%\bin;%PATH% 
set CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar

右鍵點我的電腦-屬性-高級-環境變量-新建環境變量(有path的話可以直接雙擊,改變量值就可以了):   變量名:path   變量值(路徑):E:\java..(你安裝java的名字)\bin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM