java我不理解src文件夹和独立包的用途
在过去的几个月里,我只在python中使用eclipse,我想开始在java中使用它。但是,根据我看过的教程,组织java项目的正确方法是在源文件夹中创建一个名为com.project
的包,并将所有类等命名为com.project.class
。您还可以制作与子目录类似的子包,例如com.project.utilities.*
。有了这个约定,我不明白为什么我会为每个项目创建多个包。既然所有的代码都包含在这个结构中,那么src文件夹的作用是什么
我希望我只是错误地认为这是构建java项目的正常方式,因为它看起来非常不方便
而且,我还没有玩弄过这个,但是这会不会让加载外部依赖项变得很痛苦呢?如果我在src和bin文件夹旁边放置了一个img文件夹,我不需要使用“.\img*”来访问它吗
# 1 楼答案
我能理解为什么这对小项目来说似乎不方便。但是,如果您必须处理一个包含数百(或数千)个源文件的项目,那么拥有直观的子包对于保持一切井然有序是绝对必要的
至于根据源文件所在的相对路径加载外部依赖项,这完全取决于编译后的应用程序的组织方式。使用您描述的“.\img”引用资源是不常见的
# 2 楼答案
是的,对于小项目来说可能没有多大意义。你可以:
但是对于更大的项目,您可能需要分成属于不同功能类型的包、类
例如,核心java库有(仅举几个例子)
爪哇。lang(包含核心类,如Object、String、Integer、Boolean、StringBuilder) JAVAutil(包含诸如List、ArrayList、Date、Map、Timer等实用程序类) JAVAio(包含文件、InputStreamReader、BufferedReader等输入/输出类
爪哇。sql,java。swing,java。文本等
这样,您就可以“打包”彼此相关的类
根据惯例,这些类的源代码位于名为
src
的文件夹中所以你会:
您可能还需要将源代码与编译后的文件分开,以便按照约定使用
classes
文件夹。此外,您可能需要一个单独的文件夹来存放第三部分库,另一个文件夹用于存放图像、辅助文件或其他资源,另一个文件夹用于存放文档等因此,典型的布局可能是:
但当然,这只适用于大型项目
Web应用程序通常还包含一个Web-INF文件夹等
如果您的项目只包含几个类,不要担心,只使用一个文件夹,但最好了解其基本原理
# 3 楼答案
你不必把所有东西都装在一个包裹里。对于非常小的应用程序,您可以直接将java源文件放在src目录中,这意味着您的类将属于“默认”包。但大多数项目使用唯一的包名以避免名称冲突,例如java之间的名称冲突。util。日期和java。sql。日期
使用“src”目录是IDE、构建工具和其他程序员都很容易理解的惯例。如果您避免使用“src”,而是使用如下目录结构:
然后,您不能简单地告诉IDE在“com”文件夹中查找java源文件,因为这样它会将类解释为“project.MyClass”而不是“com.project.MyClass”。另一方面,您也不能告诉它在根文件夹中查找源文件,因为这样它会期望img文件夹包含java源文件