![](/img/trans.png)
[英]Source folder is not on the Java build class path, creating Java package
[英]In Java, should I be creating a new Package, Folder, or Source Folder?
关于SO的问题有很多,但我对Java开发是完全陌生的,我不知道解决此问题的正确方法。
我有一个C#解决方案,包含两个项目(我的应用程序和一个单元测试项目),并且在应用程序内,大多数东西都放在例如文件夹中。 接口,异常等
我正在尝试在Java / Eclipse中重新创建它,但我不知道如何。 我最终得到了很多包装,听起来真的很糟糕。 我也尝试添加一个源文件夹,但是最终被打包了。
有人能指出我正确的方向吗?
即,应该使用哪些代表我的单元测试项目/单元测试集,以及仅用于组织内容的子文件夹。
编辑:它还说不建议使用默认程序包。 我该怎么办?
编辑2:这是它的样子。 这看起来隐约正确吗? 我原来的C#解决方案在右边。
在典型的Java eclipse项目中,您将具有一个或多个源文件夹(例如,一个用于应用程序代码,一个用于您的单元测试)。
每个文件夹都包含一个软件包树,通常从您的基本软件包开始,例如com.mycompany.myapp
。
为了避免名称冲突,程序包名称通常以代码作者的实体的域名开头,从顶级域名开始,然后倒退(从更一般到更具体)。 这样,每个类的完全限定名称都是唯一的。 例如,如果google创建一个名为List
的类,它将被称为com.google.List
,并且不会与现有的java.util.List
接口冲突。
您可以在此基本软件包中包含无限数量的软件包,例如:
com.mycompany.myapp.persistence
com.mycompany.myapp.domain
com.mycompany.myapp.services
com.mycompany.myapp.web
这完全取决于您的项目以及组织代码和类的方式。
在逻辑级别上,包以点作为分隔符来命名。 它们包含Java类。
在物理磁盘级别上,每个程序包都是一个目录。 Java类包含在.java文件中(最常见的是每个文件一个类)。
在Eclipse中,“源文件夹”是项目内部的文件夹,Eclipse知道该文件夹包含Java源文件。 当您构建项目时,它将被编译包含在输出中(例如JAR文件)。
在Eclipse中,通常会在逻辑级别查看它们,并显示软件包。 当您告诉Eclipse“创建新软件包”时,它将为您创建目录。 例如,如果您告诉它创建com.mycompany.myproject
包,它将自动创建一个com
文件夹,其中包含一个mycompany
文件夹,该文件夹包含一个myproject
文件夹。
在Java中,源树结构必须与包结构相匹配
所以foo.bar包必须放在
src / foo / bar
也可能不建议使用默认软件包-但您仍然可以使用它-最好将东西放在软件包中
在Java中,根据项目类型流动不同的项目开发结构。 因此,由于您是Java和Eclipse的新手,因此最好安装maven插件并创建maven项目,并根据您的项目类型选择原型,例如独立或基于Web的原型。 该Maven插件将创建项目结构,包括封装,测试包的源文件夹等,你可以从中获取更多关于项目结构这
使用默认包可能会导致名称空间冲突。 假设您正在创建一个包含MyClass类的库。 有人在他的项目中使用您的库,并且在他的默认包中还有一个MyClass类。 编译器应该做什么? Java中的Package实际上是一个可以完全标识您的项目的名称空间。 因此,在实际项目中不要使用默认程序包非常重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.