您的位置:首页 > 编程语言 > Java开发

Eclipse下的package,source folder,folder的区别以及在Eclipse项目中如何正确引用资源

2018-02-13 19:34 609 查看
在eclipse下,package,source folder,folder都是文件夹.  

它们的区别如下:  

package:当你在建立一个package时,它自动建立到source folder下,也只能建立在这个目录之下.  

source folder:存放java源代码的文件夹,当然也包括一些package文件夹,还可以包含其他文件.  

项目构建后,source folder里面的java自动编译成class文件到相应的/web-inf/classes文件夹中,其他文件也会移到/web-inf/classes相应的目录下.  

 

package和sourceFolder比较

相同之外:package下除了java文件也可以包含其他文件,而且编译、打包后的文件路径与source folder下的文件路径有一样规则

不同之外:1.sourceFolder靠"/"来进行上下级划分,package靠“.”来进行上下级划分。

  2.source folder下能建package,而package下不能建source folder

  3.java文件中的package属性是按package路径来进行赋值的,source folder路径不参与java文件的package属性赋值,再由第二条不同得到结论,所有source folder下的java文件package属性都为空。

folder:里面可以放入任何文件.包括java源文件,jar文件,其他文件(例如,图片,声音等).在此我说明一下,如果里面含有java源文件,不管程序是否正确,eclipse都不会报错,把它们当做普通文件处理.但是项目如果要使用这里面的文件,情况就不同了. 

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 的转换同上



注意一个重点,如果要在程序中调用资源,比如图片,需要进行如下操作:

一、在项目下新建两个Source Folder,注意不是Folder,一个src,一个res,然后在src下创建程序文件,将图片、声音等资源文件导入到res这个目录里面就可以了。这样在文件结构上就可以把源文件组织在src目录下,而资源文件放在了res目录中了。但是要注意在程序中调用图片时的路径是("/xxxx.png"),而不是("/res/xxxx.png"),因为一般来说source folder默认是加入了项目的java
build path的,也就是其实图片放在了\verified\classes的目录下。

二、在项目下新建一个Source Folder(src),然后在src下创建程序文件,同时可以在这里面新建个Package或Folder(res),将图片、声音等资
4000
源文件导入到res这个目录里面。这样在文件结构上就可以把源文件组织在src目录下,而资源文件也放在了src目录下里res目录中了。这样在程序中调用图片时的路径就可以是("/res/xxxx.png")了。

三、在项目中把程序创建到src或src.xx.xxx这样的包中,在项目下新建一个res的Package或Folder,将图片、声音等资源文件导入到res这个目录里面。这样在文件结构上就可以把源文件组织在src目录下,而资源文件放在res目录里了。同时在程序中调用图片时的路径也是("/res/xxxx.png")了。

总结:程序中资源的路径是由在\verified\classes下的路径决定的,如果程序在出现资源相关的异常,不妨到这个目录下看看具体的路径情况,以决定是否是路径问题。


参考资料:

(1)https://www.cnblogs.com/slowly-keeping/archive/2012/04/23/2466054.html

(2)https://zhidao.baidu.com/question/96361741.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: