JAVA程序能夠順利編譯需要兩個(gè)環(huán)境變量,一個(gè)是PATH(path),一個(gè)是CLASSPATH(classpath)。那么這兩個(gè)環(huán)境變量代表什么呢?或者說(shuō)究竟在JAVA程序編譯中有什么作用呢?這就要涉及到WINDOWS的基本知識了。在WINDOWS環(huán)境中,每一條能用的指令都保存在硬盤(pán)的“某個(gè)角落”,比如說(shuō)指令NOTEPAD(WINDOWS的記事本指令,在C: WINNT目錄下),那么在DOS命令提示符下直接輸入NOTEPAD就可以打開(kāi)記事本了。但是一旦我們把C:WINNT目錄下的NOTEPAD.EXE 這個(gè)可執行文件移開(kāi)(比如說(shuō)我們現在把它“剪切”到D盤(pán)根目錄下)我們再在DOS提示符下直接輸入NOTEPAD時(shí)就無(wú)法再打開(kāi)記事本了,但是我們在DOS下改變路徑輸入 D:NOTEPAD(或者先輸入cd D: 在輸入NOTEPAD也行)就可以打開(kāi)記事本了。這就是說(shuō)在我們直接輸入NOTEPAD的時(shí)候,其實(shí)其默認路徑就是C:WINN。假設我們要運行一個(gè)JAVA程序(hello.java)就要先把它的class文件移動(dòng)到JAVA里的bin目錄下然后打開(kāi)DOS,把路徑改到JAVA的BIN目錄下執行java hello.class,一次無(wú)所謂但是每次都要這樣去做未免太麻煩。還好WINDOWS提供了一個(gè)PATH環(huán)境變量,他的作用就是現在這個(gè)變量的值路徑中去找,如果找到了要運行的EXE就運行,否則失敗。如果我們把JAVA里的bin目錄這個(gè)路徑賦給path那么下次我在運行java這個(gè)命令的時(shí)候,即便是直接輸入DOS也能夠在path變量中找到JAVA的bin目錄下的java指令了。
下面說(shuō)說(shuō),classpath環(huán)境變量。不知道各位注意到?jīng)]有,我上面說(shuō)的那句話(huà)——“假設我們要運行一個(gè)JAVA程序(hello.java)就要先把它的class文件移動(dòng)到JAVA里的bin目錄下”,為什么要這樣做呢?因為我們在用到j(luò )ava hello.class這條指令的時(shí)候,DOS不知道hello.class這個(gè)文件在哪里,他就先到當前目錄中去找,如果找到就運行,否則失敗。當然,如果說(shuō)hello.java在D盤(pán)根目錄下,你也可以用java D:hello.class這條指令來(lái)運行,但是每次這樣做也確實(shí)夠麻煩。WINDOWS就提供了這樣一個(gè)環(huán)境變量——classpath,如果沒(méi)有就應該新建一個(gè)。我們把D:這個(gè)路徑賦值給classpath,那么下次在運行java hello.java的時(shí)候就先在當前目錄中到,如果找到就運行,如果找不到就在classpath的值路徑下去找,找到就運行,找不到就失敗。
以上闡述了path和classpath兩個(gè)環(huán)境變量的作用,如果設置好了。java的編譯和運行就基本上沒(méi)什么問(wèn)題了。至于有些書(shū)上說(shuō)的環(huán)境變量javahome初學(xué)階段可以暫時(shí)不管它。
2、如何設置環(huán)境變量?
JDK的環(huán)境變量的設置只需要兩個(gè)環(huán)境變量:一個(gè)是path,另一個(gè)是:class_path。 path用于指定操作系統的可執行命令的路徑;class_path用于制定Java的類(lèi)文件存放路徑。我們在“我的電腦”右擊選擇“屬性”,在“屬性”選項卡中選擇“高級”,最下面就是“環(huán)境變量”和“錯誤報告”。我們點(diǎn)擊“環(huán)境變量”,進(jìn)入“環(huán)境變量”設置對話(huà)框。在這里,上面顯示的是當前用戶(hù)的變量,下面的是所有使用這臺機器的用戶(hù)均可用的變量(系統變量),我們在“系統變量”中新建兩個(gè)變量,一個(gè)名為path,另一個(gè)名為:class_path(大小寫(xiě)均可)。然后,把 path的值設置為你的JDK安裝目錄的bin目錄的路徑和bin目錄下的jre文件夾下的bin目錄的路徑添加到變量值中就可以了,兩個(gè)路徑中間用 “;”(半角的分號,兩邊的雙引號是為了強調,并非實(shí)際添加內容)。而class_path的值則為JDK安裝目錄下的jre目錄下的lib文件夾的路徑。下面舉例說(shuō)明:
我的JDK的安裝路徑為C:Program FilesJavajdk1.5.0_06,那么,我要為path設置的變量值就是:C:Program FilesJavajdk1.5.0_06in;C:Program FilesJavajdk1.5.0_06jrein(注意中間用半角分號隔開(kāi))。而class_path的值則為:.;C:Program FilesJavajdk1.5.0_06jrelib。這里要注意的就是在這個(gè)路徑之前一定要注意加上半角的句點(diǎn)和半角的分號。
1.打開(kāi)我的電腦--屬性--高級--環(huán)境變量
2.新建系統變量JAVA_HOME 和CLASSPATH
變量名:JAVA_HOME
變量值:C:\Program Files\Java\jdk1.7.0
變量名:CLASSPATH
變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
3. 選擇“系統變量”中變量名為“Path”的環(huán)境變量,雙擊該變量,把JDK安裝路徑中bin目錄的絕對路徑,添加到Path變量的值中,并使用半角的分號和已有的路徑進(jìn)行分隔。
變量名:Path
變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
這是java的環(huán)境配置,配置完成后直接啟動(dòng)eclipse,它會(huì )自動(dòng)完成java環(huán)境的配置
由于Java是平臺無(wú)關(guān)的,安裝jdk時(shí)java不會(huì )自動(dòng)設置路徑,也不會(huì )修改注冊表,需要用戶(hù)自己設置環(huán)境變量,但不需要修改注冊表。
Windows中需要設置兩個(gè)環(huán)境變量path和classpath。path變量指出java提供的可執行文件的路徑,classpath指出java包的路徑。
xp中右擊我的電腦,選屬性,在屬性中選擇“高級”選項卡,點(diǎn)擊環(huán)境變量按鈕,系統彈出‘環(huán)境變量’對話(huà)框,path是windows已定義的變量,找到“path”,點(diǎn)擊“編輯”按鈕,將“;C:\Program Files\Java\jdk1.6.0\bin”加到“變量值”文本框中,然后單擊“確定”按鈕。向Path添加的是JDK編譯器javac.exe和解釋器java.exe的路徑。如果windows沒(méi)有Path變量,則需要新建。
windows中沒(méi)有classpath環(huán)境變量,需要新建。單擊新建按鈕,變量名為classpath,變量值為“.;C:\Program Files\Java\jdk1.6.0\lib”,這是JDK包(類(lèi)庫)的路徑。
注:1.必須加在“系統變量”列表框中,不能加在“用戶(hù)變量”中!
2.變量值引號中每個(gè)符號都要copy,不能落下點(diǎn)好!
1.打開(kāi)我的電腦--屬性--高級--環(huán)境變量 2.新建系統變量JAVA_HOME 和CLASSPATH 變量名:JAVA_HOME 變量值:C:\Program Files\Java\jdk1.7.0變量名:CLASSPATH 變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;3. 選擇“系統變量”中變量名為“Path”的環(huán)境變量,雙擊該變量,把JDK安裝路徑中bin目錄的絕對路徑,添加到Path變量的值中,并使用半角的分號和已有的路徑進(jìn)行分隔。
變量名:Path 變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;這是java的環(huán)境配置,配置完成后直接啟動(dòng)eclipse,它會(huì )自動(dòng)完成java環(huán)境的配置。
三個(gè)環(huán)境變量相同之處,都是設置命令或者文件的搜索路徑,但是仍然有一些區別。
PATH:搜索系統命令的路徑 Classpath:搜索JAVA類(lèi)庫的路徑 至于hoempath,個(gè)人認為,就是一環(huán)境變量,名字也未必固定(更常見(jiàn)的是寫(xiě)成java_home),是針對并設置為JAVA的特定安裝目錄。設置之后,就可以利用它,在PATH變量中這樣設置一些路徑,如%homepath%\bin之類(lèi)的,是一種簡(jiǎn)便的替代使用方法。
至于百分號%,在DOS下面有如下使用方法: %variable:指定一個(gè)單一字母可替換的參數 %%variable:指定一個(gè)變量則用 %variable%:調用變量。
一般是jdk的bin目錄,例 : C:\Program Files\Java\jdk1.5.0_22\bin
classpath 類(lèi)的路徑,在編譯運行java程序時(shí),如果有調用到其他類(lèi)的時(shí)候,在classpath中尋找需要的類(lèi) 或者理解為class文件的存放路徑。 Windows下JAVA用到的環(huán)境變量主要有3個(gè),JAVA_HOME(可以不設,設是為了容易理解些)、CLASSPATH、PATH。下面逐個(gè)分析。
JAVA_HOME指向的是JDK的安裝路徑,如x:\JDK_1.4.2,在這路徑下你應該能夠找到bin、lib等目錄。值得一提的是,JDK的安裝路徑可以選擇任意磁盤(pán)目錄,不過(guò)建議你放的目錄層次淺一點(diǎn),如果你放的目錄很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx……
那么,下面的步驟和以后的應用你都要受累了,呵呵。設置方法:
JAVA_HOME=x:\JDK_1.4.2
PATH環(huán)境變量原來(lái)Windows里面就有,你只需修改一下,使他指向JDK的bin目錄,這樣你在控制臺下面編譯、執行程序時(shí)就不需要再鍵入一大串路徑了。設置方法是保留原來(lái)的PATH的內容,并在其中加上%JAVA_HOME%\bin
%JAVA_HOME%來(lái)看一下你的設置結果) :
PATH=%JAVA_HOME%\bin;%PATH%
同樣,%PATH%是引用以前你設置的PATH環(huán)境變量,你照抄以前的值就行了。
CLASSPATH環(huán)境變量我放在最后面,是因為以后你出現的莫名其妙的怪問(wèn)題80%以上都可能是由于CLASSPATH設置不對引起的,所以要加倍小心才行。
CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
首先要注意的是最前面的".\;",如果你看不清,我給你念念——句點(diǎn)反斜杠分號。這個(gè)是告訴JDK,搜索CLASS時(shí)先查找當前目錄的CLASS文件——為什么這樣搞,這是由于LINUX的安全機制引起的,LINUX用戶(hù)很明白,WINDOWS用戶(hù)就很難理解(因為WINDOWS默認的搜索順序是先搜索當前目錄的,再搜索系統目錄的,再搜索PATH環(huán)境變量設定的)
所以如果喜歡盤(pán)根究底的朋友不妨研究一下LINUX。
這個(gè)是由java語(yǔ)言的import機制和jar機制決定的,你可以查資料解決。
呵呵,具體的設定方法: win2k\xp用戶(hù)右鍵點(diǎn)擊我的電腦->屬性->高級->環(huán)境變量,修改下面系統變量那個(gè)框里的值就行了。
1. PATH環(huán)境變量。作用是指定命令搜索路徑,在i命令行下面執行命令如javac編譯java程序時(shí),它會(huì )到PATH變量所指定的路徑中查找看是否能找到相應的命令程序。我們需要把jdk安裝目錄下的bin目錄增加到現有的PATH變量中,bin目錄中包含經(jīng)常要用到的可執行文件如javac/java/javadoc等待,設置好PATH變量后,就可以在任何目錄下執行javac/java等工具了。
2. CLASSPATH環(huán)境變量。作用是指定類(lèi)搜索路徑,要使用已經(jīng)編寫(xiě)好的類(lèi),前提當然是能夠找到它們了,JVM就是通過(guò)CLASSPTH來(lái)尋找類(lèi)的。我們需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設置到CLASSPATH中,當然,當前目錄“.”也必須加入到該變量中。
新版的軟件,classpath好像都沒(méi)有什么用了,因為在安裝的時(shí)候已經(jīng)選了JDK而且可以添加
3. JAVA_HOME環(huán)境變量。它指向jdk的安裝目錄,Eclipse/NetBeans/Tomcat等軟件就是通過(guò)搜索JAVA_HOME變量來(lái)找到并使用安裝好的jdk。
配置方式:
JAVA_HOME 指向的是JDK的安裝路徑,如C:\jdk1.5.0_06,在這路徑下你應該能夠找到bin、lib等目錄。值得一提的是,JDK的安裝路徑可以選擇任意磁盤(pán)目錄,不過(guò)建議你放的目錄層次淺一點(diǎn)
JAVA_HOME=C:\jdk1.5.0_06
PATH=%JAVA_HOME%\bin;%PATH%;
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:3.020秒