Java環境變量

首先環境變量其實就是一組變量,就如你在java定義的變量一樣,它的作用是給系統和應用程序提供參數。具體到細節,例如path,它是系統中的一個重要變量,它告訴系統和應用程序一些系統必備的程序的存儲位置,例如你想在命令行窗口中使用ipconfig命令查看自己的ip地址,可是系統怎麼知道ipconfig這個程序在什麼位置呢?答案是通過path,從頭到尾挨個的取出每個參數來試,例如path中有個C:/WINDOWS/system32的話,那吹它就加上ipconfig,看能不能找到程序,現在也就是說變成了C:/WINDOWS/system32/ipconfig如果能找到它的話就運行,不能的話就返回“‘ipconfig’不是內部或外部命令,也不是可運行的程序或批處理文件。”


    而對於java來說,你在命令行裏面輸入java xxx的話系統同樣不知道java這個exe文件的位置,同樣需要你顯式的指出,java這個程序在哪呢?在你的jdk安裝路徑/bin文件夾裏面,也就是說要想運行java,path必須指向bin文件夾。還有一個classpath,現在系統能找到java這個程序了,但是僅僅這樣的話,你在命令行中輸入javac的話,又出現錯誤了,也許有人會說你不是說系統通過path找到了,應該能找到我設置的bin文件下的javac程序呀?這裏要說的是,雖然你已經設置好了path但是系統還是有些東西找不到,什麼東西呢?Java的類庫文件,大家知道java的源程序上面總是有很多的形如import java.xx.xx;的語句,這就是引用的java的類庫,也許有人會問,我的程序中沒有這一句話呀,對,很多簡單的程序都沒有,例如經典的“Helloworld”裏面就沒有,對它是沒有顯式的引用,但是在每個java文件中都隱藏了這麼一句“import java.lang.*”;現在問題就出來了,程序怎麼才能找到這個lang這個包並且把裏面的類導進去呢?顯然只通過path是不行的,那麼就只能另外的定義一個變量來指向類庫文件。它就是classpath,爲什麼叫這個名字呢?不爲什麼,就規定了必須用這個名字,它必須叫這個名字,可以理解爲它是在java的jdk中定義的一個static的變量,既然已經定義好了,你只用給它賦值就得了,然過jdk調用的時候它沒有值,就是說你沒有新建一個classpath並且給它賦值,那麼沒辦法,就給你臉色看。


    另外還有一點就是可能有人會問JAVA_HOME變量是一個什麼變量呀,這個變量在目前的階段來說就是一個我們自己定義的變量,它作用就是讓你省勁,例如你的jdk安裝的路徑很深,譬如安裝到了“C:/Program Files/Sun/Java/jdk1.6.0_02/”下邊然後你在設置path的時候必須輸入“C:/Program Files/Sun/Java/jdk1.6.0_02/bin”,設置classpath的候再來一次“C:/Program Files/Sun/Java//jdk1.6.0_02/lib/tools.jar”,你不累系統都煩了,而且path、classpath也變得很長了,下一次設置的時候就變得很麻煩了,要找半天才能找到自己要改的地方,現在JAVA_HOME就出現了,你可以在系統中定義一個名爲JAVA_HOME的環境變量,它的值是:“C:/Program Files/Sun/Java/jdk1.6.0_02”,那麼在設置path的時候就可以直接寫了,在path的值裏面添加:“%JAVA_HOME%/bin”,就是這麼簡單,相應的classpath爲:“,;%JAVA_HOME%/tools.jar”是不是簡潔多了呢?而且你的安裝路徑變了或者寫錯的時候要改也只用改這一處,不用把path和classpath同時修改。到了這裏我繼續叨叨幾句,JAVA_HOME可以不大寫,甚至名字都可以變成“sxy”,“a”,或者你能想到的其他,反正只要在引用它(就是系統在看到有%%圍繞的變量時就把它替換成變量的值,例如上面的“%JAVA_HOME%/bin”系統看到這個的時候就把%JAVA_HOME%變成了C:/Program Files/Sun/Java/jdk1.6.0_02)保證名稱一樣(大小寫不敏感),但是如果以後你要是使用tomcat等軟件的時候,它會檢查你的JAVA_HOME變量,所以最好保持這個名字不變,但是你如果現階段不用,就隨便了。現在明白了,也許有人會說我囉嗦,沒辦法放出一個環境變量的例子來:

JAVA_HOME=C:/Program Files/Java/jdk1.6.0_02(等號前面代表變量名,後來表示值,這樣詳細的解釋感覺自己智商在下降~~後邊的是你的jdk的安裝位置,如果你的jdk是1.6安裝的時候默認的話,那麼就這樣設置就行了,不是的話相應改變);

Path加上一句(!!!注意是加上,不是把原來的東西給去掉,那麼的話很多程序就不能運行了,然過你去掉了的話跟我聯繫,)%JAVA_HOME%/bin

Classpath=.;%JAVA_HOME%/lib/tools.jar;另外一點就是最好把你放置自己寫的程序的位置也加進來。例如你平常程序都放在d:/source下,那麼直接加上就可以了,別忘了分號~~~ 

 

 

JAVA_HOME指明JDK安裝路徑
Path使系統可以在任何路徑下識別java命令
CLASSPATH爲java加載類(class or lib)路徑

以上設置不分大小寫

Windows在我的電腦->屬性->高級->環境變量->系統變量中添加以下環境變量
liunx還沒玩過,不知-_-!!!

JAVA_HOME=安裝目錄(例如C:/jdk) 
classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;
path=%JAVA_HOME%/bin 

 

回答者: 5780219 - 五級   2008-4-15 11:09

JAVA_HOME=安裝目錄(例如C:/jdk) 
classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar; 
path=%JAVA_HOME%/bin 

回答者: sfq1984sxs - 四級   2008-4-15 11:38

你說的這三個,都是環境變量。
某個進程在執行的過程中可能需要知道一些配置信息才能繼續工作,這些信息可以從配置文件讀取,從數據庫讀取,但那些都屬於比較獨特的做法。最通用的做法,是利用操作系統提供的環境變量的機制。比如tomcat的啓動腳本,resin的啓動腳本都需要知道jdk安裝在什麼位置
java_home就是在告訴某個進程jdk安裝到哪兒了
path一般是操作系統的shell用來找可執行文件用的,也就是說如果你不寫全路徑就說要執行某個可執行文件,shell會到path裏指定的目錄挨個找你說的文件。
CLASSPATH是告訴java虛擬機(未必是sun的),要執行的類都可以從那些目錄或者jar裏找到,當然這個不是必須的,通常可以通過命令行參數指定,不如sun jdk可以用java -cp .來達到相同的目的。

設置的方法各個操作系統都會不同,Windows都是右鍵點我的電腦屬性裏去找,xp,vista都不同,但不難找到

unix/linux下,都是用命令行
CLASS_PATH=要設定的東西
export CLASS_PATH

現在很多shell都可以直接寫
export CLASS_PATH=要設定的東西

當然,分隔符會不同
windows是  目錄1/目錄2;目錄3
unix是     目錄1/目錄2: 目錄3 
上面的定義都很正確,我想說的是這個環境變量你只要知道有什麼用就可以了,它就是爲了程序編譯運行的時候電腦根據這些配置尋找這個程序運行要用到的類方法等存放的位置用的,以便可以調用.
不需要很瞭解. 

回答者: sunsoftboy - 一級   2008-4-15 15:53

JAVA_HOME就是jdk的安裝目錄、

操作系統通過PATH裏的路徑來尋找要執行的程序,比如你在path裏添加了%JAVA_HOME%/bin,那麼在命令提示符下你可以直接執行該目錄下的所有可執行程序

CLASSPATH就是JAVA虛擬機尋找class文件的路徑 

回答者: 林湯姆 - 一級   2008-4-15 16:42

java_home指定JDK安裝路徑,配不配無所謂 
path使系統可以識別java 
calsspath是java加載路徑
需要注意的是
calsspath添加在上面一欄 你自己的用戶可以使用其他用戶名進來不能使用 加在下面是public 都可以用,以上同理 

回答者: kutty110 - 四級   2008-4-15 18:42

JAVA_HOME = 你的安裝路徑
PATH = %JAVA_HOME%/bin;
CLASSPATH = .;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar

java_home要配的,tomcat只認javahome哦 

回答者: opensky010 - 五級   2008-4-15 18:58

java_home
指的是java的安裝目錄,系統本身是不需要配置這項的,但是其他軟件比如tomcat就會從這裏找java如果你不配置他們就找不到java了
path
指的是系統查找執行文件的位置,比如如果你想直接在<開始-運行>裏運行某個項目,這個東西必須在path目錄裏,不然系統會說找不到
classpath
這個指的是java程序自動查找class的位置,就如path一樣,如果你發現什麼時候運行時說找不到某個class,你就需要考慮這個了

以上3個變量不區分大小寫,這是windows平臺

liunx平臺大同小異,除了一些分隔符比如windows平臺使用的"/"liunx平臺是使用"/",其他都一樣 
關於java環境變量的設置問題我也幫其他的一些網友解決過,貌似都可以了.現在我把我解答的複製過來給你看看(因爲懶,不想再重複敲一次相同的內容),如果你這麼去做了,我相信應該能行的.你試試,如果行就給分,不行就發消息問我,我幫你弄....)



變量說明:
java_home的值爲:jdk的安裝路徑(建議安裝jdk時不要選擇默認安裝)
path的值爲:jdk的安裝路徑/bin 

現在知道變量是值應該是什麼了,那麼也許這樣設,更能夠幫助你理解環境變量是如何設置的... 

假設jdk的安裝路徑爲: "F:/jdk_安裝目錄",則有: 
java_home: 
F:/jdk_安裝目錄 
備註:java_home這個變量可以不設,不過我還是設的.其值就是你jdk的安裝路徑..如果你要設,直接複製過去然後粘貼上就OK了..如果沒有java_home這個環境變量,就創建一下好了.後面的path,classpath也是一樣,沒有就直接新建一下,有的話,你就把我給出的值複製然後粘貼就成了...需要注意的是,如果該變量本身有的話,你複製過去的值應該粘貼在最後面,並且用分號隔開...(計算機原來的值;環境變量的值) 

path: 
F:/jdk_安裝目錄/bin 

classpath: 
.;F:/java;. 
備註:.;F:/java;.這個值可能看不清,我這裏用漢字說明一下:點 分號 F:/java 分號 點
當然你也可以設成.;C:/java;.或者.;D:/java;.等等都行 
classpath這樣設的話你無論在哪個路徑下運行java文件都可以的...當然也許會有更好的方法




(PS:如果不小心把變量刪掉了怎麼辦呢?沒關係的,新建一下然後設值就行了) 

 

發佈了31 篇原創文章 · 獲贊 3 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章