在用myeclipse工具开发java的过程中,新建目录时发现会有package,folder和source folder等不同类型的选项,
因此在网上搜集了一些资料:如下
以下文章转自:https://blog.csdn.net/fanxiaobin577328725/article/details/54092295
前言:我使用的是Eclipse,因此示例都是以这个IDE进行演示,其他IDE应该是类同的。package、folder和source folder本质都是文件夹,只不过是处理方式不同的文件夹。
??首先我们说明一下最简单的folder,通过名字我们也可以理解,其就是文件夹。与我们操作系统下的文件夹完全一样,不起到任何作用,只是存放文件而已,存放到folder中的任何文件都只当做普通文件夹,不管其中文件是否正确,因为IDE不会对其进行任何检查。
??package就是Java开发过程中的包,其路径就是每一个类的包路径,其必须存放在一个source folder下。
??source folder是用来存放Java源代码的,其下的所有Java源文件都会被时时编译成class文件。对于JavaSE的项目会被编译到项目目录下的bin目录下,对于JavaEE项目会被编译到相应的/WEB-INF/classes文件夹中,无论是哪种项目bin文件和classes文件夹都是不会再IDE中显示的,并且上面说到的都是默认的编译路径。这些我们也都是可以更改的。如下:
项目上右击 → Build Path → Configure Build Path
下面分别是不同的配置:
SE项目:
EE项目:
下面对package与source folder的区别进行整理:
不同点:
source folder是通过“/”(反斜线)来进行上下级划分的,而package是通过“.”(点)来进行上下级划分的。
source folder下能创建package,但是反过来是不可以的,也就是说package下不能创建source folder。
java源文件中的package属性是按照package路径来进行赋值的,换句话说在source folder这个目录下的文件的package属性为空。
相同点:
其中的Java源代码都会被时时编译成class文件。
其中的非java文件会被拷贝一份到相应的class路径下。
注意:我们可以创建多个source folder,其实是对我们代码的一种归类,但他们中的Java源文件都会根据其包路径编译到相应的class路径下(例如:SE是bin目录),我们利用这一特性,可以将我们的测试代码与程序主代码分离,只要保证其包路径一样,就不需要import(导入)就可以直接使用了,因为他们的class文件已经编译到相同的包中了。
上面的三种文件夹的转换,我们可以通过右击 → Build Path中的选项进行操作。如下:
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
参考资料:
- eclipse package,source folder,folder区别
- eclipse 下面的folder,source folder,package的区别与作用
- eclipse package,source folder,folder区别及相互转换
原文地址:https://www.cnblogs.com/damoblog/p/10405605.html