我在java项目中是否通常需要使用com文件夹?

我在java项目中是否通常需要使用com文件夹?,java,package,Java,Package,编辑:让我从我的原始帖子中取出一句话,用粗体放在顶部,这样就不会被标记为重复: 我理解“com”的由来(Sun将使用TLD作为一种惯例,以反转方式使用,等等,因此您有一个唯一的包名)在这一点上,我想知道的是,没有TLD的普通solo开发者是否仍然会按照惯例创建一个封装的顶级com文件夹,以满足这一惯例。 例如,目前我的java文件包含在名为JavaProject的目录中。我猜这也使得当前包名JavaProject。我是否需要将JavaProject目录放在父com目录中,除了看起来“正常”之外没

编辑:让我从我的原始帖子中取出一句话,用粗体放在顶部,这样就不会被标记为重复:

我理解“com”的由来(Sun将使用TLD作为一种惯例,以反转方式使用,等等,因此您有一个唯一的包名)在这一点上,我想知道的是,没有TLD的普通solo开发者是否仍然会按照惯例创建一个封装的顶级
com
文件夹,以满足这一惯例。

例如,目前我的java文件包含在名为
JavaProject
的目录中。我猜这也使得当前包名
JavaProject
。我是否需要将
JavaProject
目录放在父
com
目录中,除了看起来“正常”之外没有其他原因?据我所知,它似乎没有任何实际用途。我错了吗


注意,我现在没有使用像Eclipse这样的IDE,我只是使用文本编辑器和命令行,手工创建文件和包。

没有专门使用
com
作为包名的第一段的惯例。事实上,Java标准库本身并没有做到这一点。即使您只考虑由具有TLD的第三方组织生成的包,这些包也不总是以.com结尾。事实上,特别重要的是.org TLD,比如Apache项目的

总的来说

  • 请选择一个独特的软件包名称。它不一定要有多个段
  • 如果您不打算以反向域名为基础,则不要以
    com
    org
    或任何可能与反向域名冲突或混淆的内容开头
  • 选择了包名称后,请按照该名称的常规布局安排源代码。严格来说,遵循这种布局是不必要的,但它会让你省去很多悲伤。很多工具都期望这种布局,或者至少能最好地使用它

没有专门使用
com
作为包名的第一段的惯例。事实上,Java标准库本身并没有做到这一点。即使您只考虑由具有TLD的第三方组织生成的包,这些包也不总是以.com结尾。事实上,特别重要的是.org TLD,比如Apache项目的

总的来说

  • 请选择一个独特的软件包名称。它不一定要有多个段
  • 如果您不打算以反向域名为基础,则不要以
    com
    org
    或任何可能与反向域名冲突或混淆的内容开头
  • 选择了包名称后,请按照该名称的常规布局安排源代码。严格来说,遵循这种布局是不必要的,但它会让你省去很多悲伤。很多工具都期望这种布局,或者至少能最好地使用它

注意:(常规)目录结构遵循包名,而不是相反。包名来自Java源文件中的
Package
语句,而不考虑源文件的位置。@JohnBollinger谢谢你提出这个问题,我真的很想知道。但这不是一回事吗?您仍然需要有一个与包名匹配的目录结构,no?@temporary\u user\u name,只有当您按照包内
语句的常规方式布局文件时,它才是相同的。这使很多事情变得容易,但这不是必需的。请注意,这是对“我想这也使得当前包名为JavaProject”的响应,因为不,源代码所在的目录并不是决定内部定义的类属于哪个包的目录。(也是一件好事,因为“JavaProject”是一个绝对可怕的包名——太通用了,并且使用了非常规的大写形式。)是的,当然,我明白了,这只是为了我自己跟踪桌面上的事情。谢谢。引用其中一条关于副本的评论(这是一个重复的IMHO):“我看到人们使用他们的GitHub用户名作为他们的域,例如:com.guthub.pwagland.xxx[sic]主要目的是获得一个唯一的名称,这样您就不必更改它,而且它永远不会与其他人选择的名称冲突。-Paul Wagland Dec 24'16 at 7:19“注意:(常规)目录结构遵循包名,而不是相反的方式。包名来自Java源文件中的
Package
语句,而不考虑源文件的位置。@JohnBollinger谢谢你提出这个问题,我真的很想知道。但这不是一回事吗?您仍然需要有一个与包名匹配的目录结构,no?@temporary\u user\u name,只有当您按照包内
语句的常规方式布局文件时,它才是相同的。这使很多事情变得容易,但这不是必需的。请注意,这是对“我想这也使得当前包名为JavaProject”的响应,因为不,源代码所在的目录并不是决定内部定义的类属于哪个包的目录。(也是一件好事,因为“JavaProject”是一个绝对可怕的包名——太通用了,并且使用了非常规的大写形式。)是的,当然,我明白了,这只是为了我自己跟踪桌面上的事情。谢谢。引用其中一条关于重复的评论(这是一个重复的IMHO):“我看到人们使用他们的GitHub用户名作为他们的域,例如:com.guthub.pwagland.xxx[sic]th