|
關(guān)于java的classpath問(wèn)題的總結(jié) 1.如果編譯(javac.exe)或者運(yùn)行(java.exe)時(shí)沒(méi)有使用-CP或者-CLASSPATH參數(shù),那么編譯或者運(yùn)行所使用到的所有類必須在系統(tǒng)的環(huán)境變量CLASSPATH所指定的路徑或者JAR/ZIP文件中能夠找到. 2.如果編譯(javac.exe)或者運(yùn)行(java.exe)時(shí)使用-CP或者-CLASSPATH參數(shù),那么系統(tǒng)的環(huán)境變量CLASSPATH將不起作用,JAVAC或者JAVA將轉(zhuǎn)到-CP或者-CLASSPATH參數(shù)指定的路徑或JAR/ZIP文件中查找所需的類.除非-CP或者-CLASSPATH也引用系統(tǒng)的環(huán)境變量CLASSPATH,例如: javac -cp %CLASSPATH%;d:\mylib MyClass.java 3.CLASSPATH設(shè)置到包的包就可以了.例如com.buaa.bbs.HelloWorld類,它的class文件的絕對(duì)路徑d:\myproject\lib\com\buaa\bbs\HelloWorld.class,為了能夠找到這個(gè)類,只需要使classpath包括目錄d:\myproject\lib就可以了. 4.如果類被壓縮在JAR或者ZIP文件中,classpath必須包括該文件的訪問(wèn)絕對(duì)路徑,而不是該文件所在的目錄.例如swing.jar存儲(chǔ)在d:\swing\jars目錄下,那么需要將classpath設(shè)定為d:\swing\jars\swing.jar,包括在classpath中,而不是d:\swing\jars. 5.不要忘記了將當(dāng)前路徑包括在classpath下.因?yàn)槲覀冊(cè)诰帉懸恍┬±拥臅r(shí)候,我們一般在當(dāng)前路徑下編譯或者運(yùn)行.例如可以在AUTOEXEC.BAT中: set CLASSPATH=.;d:\lib;e:\jdk1.2.2 一句話,要么在系統(tǒng)的CLASSPATH中設(shè)置,要么用-CP/-CLASSPATH參數(shù)設(shè)置,一定要讓編譯器或者虛機(jī)找到需要的類. |
|
|