以下是對(duì)JAVA_HOME,CLASSPATH和PATH的作用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
1,設(shè)置JAVA_HOME:
一、為了方便引用,比如,你JDK安裝在C:\ProgramFiles\Java\jdk1.7.0目錄里,則設(shè)置JAVA_HOME為該目錄路徑, 那么以后你要使用這個(gè)路徑的時(shí)候, 只需輸入%JAVA_HOME%即可,避免每次引用都輸入很長(zhǎng)的路徑串;
二、歸一原則, 當(dāng)你JDK路徑被迫改變的時(shí)候, 你僅需更改JAVA_HOME的變量值即可, 否則,你就要更改任何用絕對(duì)路徑引用JDK目錄的文檔, 要是萬(wàn)一你沒有改全, 某個(gè)程序找不到JDK, 后果是可想而知的----系統(tǒng)崩潰!
三、第三方軟件會(huì)引用約定好的JAVA_HOME變量, 不然, 你將不能正常使用該軟件, 以后用JAVA久了就會(huì)知道, 要是某個(gè)軟件不能正常使用, 不妨想想是不是這個(gè)問(wèn)題.
2,設(shè)置CLASSPATH:
這是一個(gè)很有趣,當(dāng)然也比較折磨初學(xué)者的問(wèn)題, 這個(gè)變量設(shè)置的目的是為了程序能找到相應(yīng)的".class"文件, 不妨舉個(gè)例子: 你編譯一個(gè)JAVA程序---A.java, 會(huì)得到一個(gè)A.class的類文件,你在當(dāng)前目錄下執(zhí)行java A, 將會(huì)得到相應(yīng)的結(jié)果(前提是你已經(jīng)設(shè)置CLASSPATH為"."). 現(xiàn)在, 你把A.class移到別的目錄下(例如:"e:\"), 執(zhí)行java A, 將會(huì)有NoClassDefFindError的異常,原因就是找不到.class文件, 現(xiàn)在你把CLASSPATH增加為:".;e:\"再在任何目錄下運(yùn)行java A, 看看會(huì)有什么結(jié)果~~:)~~~,一切正常, java命令通過(guò)CLASSPATH找到了.class文件!
classpath=c:\test就表示執(zhí)行運(yùn)行命令時(shí)去c:\test文件夾去找需要被執(zhí)行的class文件
在java5之前該路徑是不能指定當(dāng)前路徑的,除非這樣設(shè)置:classpath=.;c:\test,就表示先在當(dāng)前目錄找class文件,要是沒找到就到c:\test去找;(當(dāng)一個(gè)變量有多個(gè)值時(shí),多個(gè)值之間是有英文的分號(hào)隔開)
設(shè)置從當(dāng)前所在目錄查找(java1.5后默認(rèn)):set classpath=.
3,設(shè)置PATH:(必須設(shè)置)
道理很簡(jiǎn)單, 你想在任何時(shí)候都使用%JAVA_HOME%\bin\java等來(lái)執(zhí)行java命令嗎, 當(dāng)然不會(huì), 于是, 你可以選擇把%JAVA_HOME%\bin添加到PATH路徑下, 這樣, 我們?cè)谌魏温窂较戮涂梢詢H用java來(lái)執(zhí)行命令了.
(當(dāng)你在命令提示符窗口輸入你個(gè)代碼時(shí),操作系統(tǒng)會(huì)在當(dāng)前目錄和PATH變量目錄里查找相應(yīng)的應(yīng)用程序,并且執(zhí)行.)