前言:我使用的是Eclipse础锐,因此示例都是以這個(gè)IDE進(jìn)行演示,其他IDE應(yīng)該是類(lèi)同的拦宣。package、folder和source folder本質(zhì)都是文件夾鸵隧,只不過(guò)是處理方式不同的文件夾。
??首先我們說(shuō)明一下最簡(jiǎn)單的folder豆瘫,通過(guò)名字我們也可以理解,其就是文件夾育灸。與我們操作系統(tǒng)下的文件夾完全一樣昵宇,不起到任何作用磅崭,只是存放文件而已趟薄,存放到folder中的任何文件都只當(dāng)做普通文件夾,不管其中文件是否正確恩够,因?yàn)镮DE不會(huì)對(duì)其進(jìn)行任何檢查羡铲。
package就是Java開(kāi)發(fā)過(guò)程中的包,其路徑就是每一個(gè)類(lèi)的包路徑也切,其必須存放在一個(gè)source folder下扑媚。
source folder是用來(lái)存放Java源代碼的雷恃,其下的所有Java源文件都會(huì)被時(shí)時(shí)編譯成class文件。對(duì)于JavaSE的項(xiàng)目會(huì)被編譯到項(xiàng)目目錄下的bin目錄下倒槐,對(duì)于JavaEE項(xiàng)目會(huì)被編譯到相應(yīng)的/WEB-INF/classes文件夾中,無(wú)論是哪種項(xiàng)目bin文件和classes文件夾都是不會(huì)再I(mǎi)DE中顯示的两残,并且上面說(shuō)到的都是默認(rèn)的編譯路徑把跨。這些我們也都是可以更改的。如下:
項(xiàng)目上右擊->Build Path->Configure Build Path
下面分別是不同的配置:
SE項(xiàng)目:
EE項(xiàng)目:
下面對(duì)package與source folder的區(qū)別進(jìn)行整理:
不同點(diǎn):
source folder是通過(guò)“/”(反斜線(xiàn))來(lái)進(jìn)行上下級(jí)劃分的崔赌,而package是通過(guò)“.”(點(diǎn))來(lái)進(jìn)行上下級(jí)劃分的。
source folder下能創(chuàng)建package浸间,但是反過(guò)來(lái)是不可以的吟榴,也就是說(shuō)package下不能創(chuàng)建source folder囊扳。
java源文件中的package屬性是按照package路徑來(lái)進(jìn)行賦值的,換句話(huà)說(shuō)在source folder這個(gè)目錄下的文件的package屬性為空锥咸。
相同點(diǎn):
其中的Java源代碼都會(huì)被時(shí)時(shí)編譯成class文件。
其中的非java文件會(huì)被拷貝一份到相應(yīng)的class路徑下熊锭。
注意:我們可以創(chuàng)建多個(gè)source folder雪侥,其實(shí)是對(duì)我們代碼的一種歸類(lèi),但他們中的Java源文件都會(huì)根據(jù)其包路徑編譯到相應(yīng)的class路徑下(例如:SE是bin目錄)速缨,我們利用這一特性,可以將我們的測(cè)試代碼與程序主代碼分離仿粹,只要保證其包路徑一樣原茅,就不需要import(導(dǎo)入)就可以直接使用了,因?yàn)樗麄兊腸lass文件已經(jīng)編譯到相同的包中了擂橘。
上面的三種文件夾的轉(zhuǎn)換,我們可以通過(guò)右擊->Build Path中的選項(xiàng)進(jìn)行操作契讲。如下:
package 轉(zhuǎn)成 folder 顯示:選中package, build path-> Exclude?
folder 轉(zhuǎn)成 package 顯示:選中folder, build path-> Include?
package 轉(zhuǎn)成 source folder 顯示:選中package, build path-> Use as Source folder?
source folder 轉(zhuǎn)成 package 顯示:選中folder, build path-> Remove from BuildPath