有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我不理解src文件夹和独立包的用途

在过去的几个月里,我只在python中使用eclipse,我想开始在java中使用它。但是,根据我看过的教程,组织java项目的正确方法是在源文件夹中创建一个名为com.project的包,并将所有类等命名为com.project.class。您还可以制作与子目录类似的子包,例如com.project.utilities.*。有了这个约定,我不明白为什么我会为每个项目创建多个包。既然所有的代码都包含在这个结构中,那么src文件夹的作用是什么

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

而且,我还没有玩弄过这个,但是这会不会让加载外部依赖项变得很痛苦呢?如果我在src和bin文件夹旁边放置了一个img文件夹,我不需要使用“.\img*”来访问它吗


共 (3) 个答案

  1. # 1 楼答案

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

    至于根据源文件所在的相对路径加载外部依赖项,这完全取决于编译后的应用程序的组织方式。使用您描述的“.\img”引用资源是不常见的

  2. # 2 楼答案

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

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

    但是对于更大的项目,您可能需要分成属于不同功能类型的包、类

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

    爪哇。lang(包含核心类,如Object、String、Integer、Boolean、StringBuilder) JAVAutil(包含诸如List、ArrayList、Date、Map、Timer等实用程序类) JAVAio(包含文件、InputStreamReader、BufferedReader等输入/输出类

    爪哇。sql,java。swing,java。文本等

    这样,您就可以“打包”彼此相关的类

    根据惯例,这些类的源代码位于名为src的文件夹中

    所以你会:

    YourProject 
    |
    + - src 
         |
         + packageA
         |
         + packageB
    

    您可能还需要将源代码与编译后的文件分开,以便按照约定使用classes文件夹。此外,您可能需要一个单独的文件夹来存放第三部分库,另一个文件夹用于存放图像、辅助文件或其他资源,另一个文件夹用于存放文档等

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

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

    但当然,这只适用于大型项目

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

    如果您的项目只包含几个类,不要担心,只使用一个文件夹,但最好了解其基本原理

  3. # 3 楼答案

    你不必把所有东西都装在一个包裹里。对于非常小的应用程序,您可以直接将java源文件放在src目录中,这意味着您的类将属于“默认”包。但大多数项目使用唯一的包名以避免名称冲突,例如java之间的名称冲突。util。日期和java。sql。日期

    使用“src”目录是IDE、构建工具和其他程序员都很容易理解的惯例。如果您避免使用“src”,而是使用如下目录结构:

    com/project/MyClass.java
    img/icon.jpg
    ...etc
    

    然后,您不能简单地告诉IDE在“com”文件夹中查找java源文件,因为这样它会将类解释为“project.MyClass”而不是“com.project.MyClass”。另一方面,您也不能告诉它在根文件夹中查找源文件,因为这样它会期望img文件夹包含java源文件