關于java的classpath問題的總結(jié) 1.如果編譯(javac.exe)或者運行(java.exe)時沒有使用-CP或者-CLASSPATH參數(shù),那么編譯或者運行所使用到的所有類必須在系統(tǒng)的環(huán)境變量CLASSPATH所指定的路徑或者JAR/ZIP文件中能夠找到. 2.如果編譯(javac.exe)或者運行(java.exe)時使用-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設置到包的包就可以了.例如com.buaa.bbs.HelloWorld類,它的class文件的絕對路徑d:\myproject\lib\com\buaa\bbs\HelloWorld.class,為了能夠找到這個類,只需要使classpath包括目錄d:\myproject\lib就可以了. 4.如果類被壓縮在JAR或者ZIP文件中,classpath必須包括該文件的訪問絕對路徑,而不是該文件所在的目錄.例如swing.jar存儲在d:\swing\jars目錄下,那么需要將classpath設定為d:\swing\jars\swing.jar,包括在classpath中,而不是d:\swing\jars. 5.不要忘記了將當前路徑包括在classpath下.因為我們在編寫一些小例子的時候,我們一般在當前路徑下編譯或者運行.例如可以在AUTOEXEC.BAT中: set CLASSPATH=.;d:\lib;e:\jdk1.2.2 一句話,要么在系統(tǒng)的CLASSPATH中設置,要么用-CP/-CLASSPATH參數(shù)設置,一定要讓編譯器或者虛機找到需要的類. |
|