eclipse package,source folder,folder区别及相互转换

Posted 孤独丶姿态

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eclipse package,source folder,folder区别及相互转换相关的知识,希望对你有一定的参考价值。

---恢复内容开始---

下面的内容是参考其他博客后,自己再总结一下加深一下印象

参考的原博客地址有:https://blog.csdn.net/u014079773/article/details/66973910

https://blog.csdn.net/u011217058/article/details/67632122

 

 

首先讲一下他们三者之间的区别

folder:folder文件夹就是普通的文件夹,和windows下的普通文件夹没有什么区别

source folder:可以存放java源代码文件,当然也包括一些package文件夹,或者其他文件,该文件夹不仅保留了folder文件夹的功能,同时还具备了自己的特有功能,特别之处就是可以将该文件夹下的java文件进行编译,编译后的文件会被放在我们设置的某个文件夹下面(一般我们设置成WEB-INF/classes),同时在source folder下的其他文件也会被移到我们设置的那个文件夹下面(WEB-INF/classes)

package:package文件夹也是一种特别的文件夹,他的特别之处在于:他必须存在于source folder下面(package下无法建立source folder),上下级通过.来区分(source folder使用/来区分上下级),他的路径最后组成了每一个类的包路径名 

 

特别注意:folder文件下可以放任何文件,如果该路径下放有java文件,该java文件不会经过编译,如果此java文件有错,也不会报错,把它们当做普通文件处理,但是如果我们的项目需要用到folder下的文件路径,例如我需要用代码读取folder下的图片文件,那么我们的程序就无法找到该路径,会报空指针异常,我们需要将该folder文件改为source folder文件就可以解决这个问题

 

 其次见一下他们的作用

folder文件夹就是普通的文件夹,文件夹下的文件不能被编译

source folder ,该文件夹设计出来就是为了存放待编译的java文件,因为java文件要先被编译,放在他下面的java文件就能被编译,而且,可以通过一定的配置将编译文件放在你配置的文件夹下面

package :只能放在source folder下,如果把source folder比喻成一座大楼,那么package就是一个个房间,每个房间里面都存放着待编译的java文件,package文件夹就是为了更好的管理文件

有一点注意的是,最后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 的转换同上

以上是关于eclipse package,source folder,folder区别及相互转换的主要内容,如果未能解决你的问题,请参考以下文章

eclipse package,source folder,folder区别及相互转换

eclipse 下面的folder,source folder,package的区别与作用

我刚安装了eclipse,想见一个新的package ,在包名上面有个source folder 怎么填写啊怎么老是不对 谢谢

Eclipse 在一个sourcefolder下新建一个folder为什么会变成默认的package?

MyEclipse中Source Folder,package,folder的区别

Maven修改test/rsource的output folder报错Test source folder 'src/test/java'... is not also used fo