java 个包如何同时以其路径和文件夹名称命名?

How can java packages be named after its path and folder name at the same time?

我已经创建了一个具有 Maven 目录结构的项目,并在 src/main/java/machine 中创建了一个名为 machine 的包文件夹。

在 class 源文件中 src/main/java/machine/MyClass.java 我在文件顶部定义了如下包:

package main.java.machine;

但是,当我尝试编译我的 Main.java 文件时,该文件在包外,声明为

import main.java.machine.MyClass;

当我尝试从 MyClass 实例化一个对象时,出现编译错误“未找到符号”。

我不明白如何遵循在目录路径之后命名包的命名约定,同时在封闭文件夹之后命名它们(在我的例子中是 package machine;,作品)。

我尝试在一个真正的 Maven 项目中使用 IntelliJ IDEA 做同样的事情,IDE 提示我创建一个名为 java.machine.MyClass 的新包文件夹或在 MyClass.java 文件顶部的语句中将包重命名为 machine

非常感谢

Maven 默认源文件夹是 src/main/java/,因此您的所有包都必须包含在该文件夹中。相反,与测试相关的应该包含在 src/main/test.

例如,在你的情况下,如果你已经创建了包机器,那么你在那个包下的class必须有以下语句:

package machine;

相反,所有想要在机器包中导入 classes 的 classes 将以这种方式导入它:

import machine;

但是,作为最佳做法,尝试以“域”开头包名称,然后是项目名称,然后您可以根据自己的用途区分每个包。例如,一个 classic 包可以是 com.myproject.machine