1. 程式人生 > >關於lib資料夾和報java.lang.NoClassDefFoundError解決辦法

關於lib資料夾和報java.lang.NoClassDefFoundError解決辦法

1、在工程下新建lib資料夾,將需要的第三方包拷貝進來。或者直接放在libs下.
2、將引用的第三方包,新增進工作的build path。
3、(關鍵的一步)將lib設為原始檔夾source folder。如果不設定,則程式編譯可以通過,但執行的時候,會報:

java.lang.NoClassDefFoundError

libs 是 android預設的路徑 而lib是自定義的目錄路徑。

首先明確一點,folder,source folder,package都是資料夾,既然是資料夾,那麼任何的檔案都可以往這三種資料夾下面的放。
1.他們的區別
folder就是普通的資料夾,它和我們window下面使用的資料夾沒有任何區別
source folder資料夾是一種特別的資料夾,如果你用面向物件的思想去看待這個source folder,那麼他是folder的一個子集,作為子集,肯定是有folder的所有功能,而且還有自己特別的功能,他的特別之處,就是在source folder下面的java檔案都會被編譯

,編譯後的檔案會被放在我們設定的某個資料夾下面(一般我們設定成WEB-INF/classes),source folder下面的非java檔案會被copy一份放在我們的設定的資料夾下面,下圖為設定方式:

package資料夾也是一種特別的資料夾,他的特別之處在於:他必須存在於source folder下面,上下級通過.來區分,他的路徑最後組成了每一個類的包路徑名,如下圖:


2.他們的作用
folder就是最普通的資料夾,你任何想放在eclipse 下面的檔案都可以放在folder下面

source folder 設計出來就是用來放待編譯的java檔案的,因為java檔案要先被編譯,那麼就出現了一個問題,那麼資料夾下面的能被編譯?那個資料夾下面的不能被編譯?所以就設計出來一個特別的資料夾叫source folder,放在他下面的java檔案就能被編譯,而且,可以通過一定的配置將編譯檔案放在你配置的資料夾下面

package,設計出來就是給java檔案用來分包的,說白了,就是為了好管理java檔案,如果source folder看做是一座大樓,那麼我們是通過package將這座大樓分成了不同的樓層,不同的房間,不同的樓層不同的房間我們用來做不同的事情,房間裡面放了很多java類,有一點注意的是,最後package組成了一個路徑名,這個路徑名不是物理路徑,但java,裡面很多時候,就是用這個package組成的路徑名,如:web.xml,spring.xml等很多的配置

3.package,source folder,folder 之間相互轉換 
package 轉成 folder 顯示:選中package, build path-> Exclude 
folder 轉成 package 顯示:選中folder, build path-> Include 

package 轉成 source folder 顯示:選中package, build path-> Use as Source folder 
source folder 轉成 package 顯示:選中folder, build path-> Remove from BuildPath 

pacage 與 source folder 的轉換同上 

posted @ 2016-09-10 19:08李慕白520