1. 程式人生 > >Java物件與類——類路徑

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設定為永久不變的值