path指示java命令的路徑,像javac、java、javaw等;
classpath是javac編譯器的一個環(huán)境變量,它的作用與import、package關(guān)鍵字有關(guān),當(dāng)你寫下improt java.util.*時,編譯器面對import關(guān)鍵字時,就知道你要引入java.util這個package中的類;但是編譯器如何知道你把這個package放在哪里了呢?所以你首先得告訴編譯器這個package的所在位置;如何告訴它呢?就是設(shè)置CLASSPATH啦! 如果java.util這個package在c:\jdk\ 目錄下,你得把c:\jdk\這個路徑設(shè)置到CLASSPATH中去!當(dāng)編譯器面對import java.util.*這個語句時,它先會查找CLASSPATH所指定的目錄,并檢視子目錄java\util是否存在,然后找出名稱吻合的已編譯文件(.class文件)。如果沒有找到就會報錯!
1.path的作用
path是系統(tǒng)用來指定可執(zhí)行文件的完整路徑,即使不在path中設(shè)置JDK的路徑也可執(zhí)行JAVA文件,但必須把完整的路徑寫出來,如C:\Program Files\Java\jdk1.6.0_10\bin\javac TheClass.java。path是用來搜索所執(zhí)行的可執(zhí)行文件路徑的,如果執(zhí)行的可執(zhí)行文件不在當(dāng)前目錄下,那就會依次搜索path中設(shè)置的路徑;而java的各種操作命令是在其安裝路徑中的bin目錄下,所以在path中設(shè)置了JDK的安裝目錄后就不用再把java文件的完整路徑寫出來了,它會自動去path中設(shè)置的路徑中去找;
2.classpath的作用
classpath是指定你在程序中所使用的類(.class)文件所在的位置,就如在引入一個類時:import javax.swing.JTable這句話是告訴編譯器要引入javax.swing這個包下的JTable類,而classpath就是告訴編譯器該到哪里去找到這個類(前提是你在classpath中設(shè)置了這個類的路徑);如果你想要編譯在當(dāng)前目錄下找,就加上“.”,如:.;C:\Program Files\Java\jdk\,這樣編譯器就會到當(dāng)前目錄和C:\Program Files\Java\jdk\去找javax.swing.JTable這個類;順便提下:大多數(shù)人都是用Eclipse寫程序,不設(shè)classpath也沒關(guān)系,因?yàn)镋clipse有相關(guān)的配置;
path是os用
classpath java用
path里面不光有Java的bin,還可以包含許多其他的,tc啊,masm阿,只要在path中設(shè)了這些環(huán)境的路徑,你在dos下的任何路徑上都可以調(diào)用這些路徑下的命令。