Java 包与文件夹结构?有啥区别
Posted
技术标签:
【中文标题】Java 包与文件夹结构?有啥区别【英文标题】:Java Package Vs Folder-Structure? what is the differenceJava 包与文件夹结构?有什么区别 【发布时间】:2012-03-19 15:16:01 【问题描述】:我想知道 Eclipse IDE 中用于 Java EE 开发的文件夹结构和包之间有什么区别。
我们什么时候使用哪一个?为什么?
应该怎么做
创建一个像 src/com/utils 这样的文件夹结构,然后在里面创建一个类 创建一个像 src.com.util 这样的包,然后在其中创建一个类如果我以后必须编写一个 ant 脚本进行部署,哪个选项会更好且更易于部署?
如果我选择文件夹结构,部署是否像将文件从开发复制到部署目标一样简单?
【问题讨论】:
【参考方案1】:创建一个像 'src.com.util' 这样的包
这听起来像是个错误。包名应该是“com.util”,“src”是源文件夹的名称。
除此之外,我看不出您的两个选择之间有什么区别。结果是一样的,对吧?只需在 GUI 中执行不同的步骤即可。在 Eclipse 中创建新包的向导只是在源文件夹中创建适当的文件夹层次结构的包装器。
完全不需要创建空包,直接创建类即可(如果包不存在会自动创建)。
【讨论】:
【参考方案2】:基本上没有区别,都是一样的。
在这两种情况下,文件夹结构都是src/com/utils
。
在这两种情况下,您都需要提及
package com.utils;
作为class
的第一行
由于实际上没有任何区别,所以对ant script
没有任何区别。
【讨论】:
【参考方案3】:如果你正确配置了东西。在src
中添加一个文件夹,与从File > New Package
中添加一个包相同。
所以,这取决于您,无论您觉得舒服 - 添加一个文件夹或创建一个包。此外,当您将东西放在src
下时,包名称从子文件夹开始。所以,src/com/naishe/test
将是包com.naishe.test
。
【讨论】:
嘿,有人疯了,每个答案都 -1!【参考方案4】:“当我们使用与其他类名相同的类名时,打包可以帮助我们避免类名冲突。例如,如果我们有一个名为“Vector”的类名,它的名称会与JDK中的Vector类发生冲突。但是,这永远不会发生,因为 JDK 使用 java.util 作为 Vector 类的包名(java.util.Vector)。所以我们的 Vector 类可以命名为“Vector”,或者我们可以将其放入另一个包中,如 com.mycompany。 Vector 不与任何人争吵。使用 package 的好处体现在易于维护、组织和增加开发人员之间的协作。理解 package 的概念也将有助于我们以更有效的方式管理和使用存储在 jar 文件中的文件。”
查看http://www.jarticles.com/package/package_eng.html 了解更多关于包的信息
【讨论】:
不幸的是,这并不能证明我为什么需要在我的文件系统中创建com/mycompany/project/package/name/here
-subdirectories。是否没有合并com/mycompany/project/package/name
目录以节省输入并避免点击MAX_PATH
的选项?【参考方案5】:
一个包自动成为“源文件夹”,其中文件夹只是一个普通文件夹。 编译 Eclipse 项目时,源文件夹中的所有文件都会被编译,但不会在常规文件夹中编译(除非那些常规文件夹 a)
【讨论】:
【参考方案6】:eclipse 中的文件夹结构或特定的源文件夹仅适用于 eclipse,但包是通用的,与任何编辑器无关..
【讨论】:
以上是关于Java 包与文件夹结构?有啥区别的主要内容,如果未能解决你的问题,请参考以下文章