关闭

关于lib文件夹和报java.lang.NoClassDefFoundError解决办法

46人阅读 评论(0) 收藏 举报
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 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:488次
    • 积分:25
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:10篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档