我不明白src文件夹和单独软件包的用途

2022-09-04 08:10:16

在过去的几个月里,我只在Python上使用Eclipse,我想开始将它用于Java。

但是,根据我看过的教程,组织Java项目的正确方法是在源文件夹中创建一个名为的包,例如,,将所有类等命名为 。您还可以创建类似于子目录(如 .)的子包。有了这个约定,我不明白为什么我会为每个项目创建多个包。由于所有代码都包含在此结构中,因此该文件夹的用途是什么?com.projectcom.project.classcom.project.utilities.*src

我希望我只是错误地认为这是构建Java项目的正常方式,因为它看起来很不方便。

另外,我还没有愚弄过这一点,但这不会使加载外部依赖项变得痛苦吗?如果我在 src 和 bin 文件夹旁边放置了一个 img 文件夹,难道我不必使用它才能访问它吗?..\img\*


答案 1

是的,对于小项目可能没有多大意义。你可以有:

MyProject
|
+ - FileOne.java
+ - FileTwo.java
+ - FileThree.java

但对于较大的项目,您可能需要将包(属于不同类型功能的类)分开。

例如,核心java库有(仅举几例)

java.lang ( 包含核心分支,如 Object, String, Integer, Boolean, StringBuilder ) java.util ( 包含 List, ArrayList, Date, Map, Timer 等实用程序类) java.io ( 包含 Input/Ouput 的类,如 File,InputStreamReader,BufferedReader 等

java.sql, java.swing, java.text 等

这样,您就可以将彼此相关的类“打包在一起”。

按照惯例,这些类的源代码位于名为src

因此,您将拥有:

YourProject 
|
+ - src 
     |
     + packageA
     |
     + packageB

您可能还需要将源代码与已编译的文件分开,因此该文件夹按约定使用。此外,您可能希望一个单独的文件夹来放置第三方库,另一个用于图像,辅助文件或其他资源,另一个用于文档等。classes

因此,典型的布局可能是:

YourProject
|
+ - src/ 
+ - lib/
+ - classes/
+ - resources/ 
+ - conf/ 
+ - bin/
+ - doc/
+ - etc/

但是,当然,它只对大型项目有意义。

Web应用程序通常还包含WEB-INF文件夹等。

如果你的项目只包含几个类,不要担心,使用一个文件夹,但最好知道基本原理是什么。


答案 2

我可以理解为什么这对小项目来说似乎不方便。但是,如果您必须处理具有数百(或数千)源文件的项目,那么拥有直观的子包对于保持一切井井有条是绝对必要的。

就基于源文件所在位置的相对路径加载外部依赖项而言,这完全取决于编译后的应用程序的组织方式。通常使用 “..\img“,就像你描述的那样。


推荐