Java物件與類——類路徑
1.首先了解Java的環境配置:
轉載:https://blog.csdn.net/u010297957/article/details/51334951
2.類路徑是所有包含類檔案的路徑的集合:
在UNIX中,類路徑中不同專案之間採用冒號(:)分隔:/home/user/classdir:.:/home/user/archive.jar
在Windows環境中,則以分號(;)分隔:c:\classdir;.;c:\archive.jar
.表示當前目錄
類路徑包括:基目錄/home/user/classdir或c:\classdir;當前目錄(.);jar檔案/home/user/archives/archive.jar或c:\archives\archive.jar
從Java SE 6開始,可以在JAR檔案目錄中指定萬用字元,如下:
/home/user/classdir:.:/home/user/archives/'*'或者c:\classdir;.;c:\archives\*;
但是在UNIX中進位制使用*防止shell命令進一步拓展
3.javac與jvm:
javac編譯器總是在當前的目錄中查詢檔案,但Java虛擬機器僅在類路徑中有“.”目錄的時候才會檢視當前目錄,如果設定了類路徑但忘記了包含“.”目錄,則程式仍然可以編譯,但是不能執行
4.jvm查詢類檔案的過程:
假設虛擬機器要搜尋com.h.c.E類檔案,首先檢查儲存在jre/lib和jre/lib/ext目錄下的歸檔檔案中所存放的系統類檔案,然後看看類路徑:/home/user/classdir/com/h/c/E.class ; com/h/c/E.class從當前目錄開始 ; com/h/c/E.class inside /home/user/archives/archive.jar
5.編譯器定位:
當引用一個類卻沒有指出這個類所在的包,那麼編譯器將首先查詢包含這個類的包,並查詢所有的import指令
編譯器還會檢視原始檔是否比類檔案新,如果是的話就會自動重新編譯
6.設定類路徑:
最好採用-classpath(或-cp)選項指定類路徑:
java -classpath /home/user/classdir:.:/home/user/archive.jar MyProg
或者
java -classpath c:\classdir;.;c:\archives\archive.jar MyProy
也可以通過設定CLASSPATH環境變數完成操作
在Bourne Again shell(bash)中:export CLASSPATH=/home/user/classdir:.:/home/user/archives/archive.jar
在Windows shell中:set CLASSPATH=c:\classdir;.;c:\archives\archive.jar
6.1建議:
不要把CLASSPATH設定為永久不變的值