首页 > 解决方案 > java包如何同时以其路径和文件夹名称命名?

问题描述

我创建了一个具有 Maven 目录结构的项目,并创建了一个名为machine.src/main/java/machine

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

package main.java.machine;

但是,当我尝试使用语句编译包外部的 Main.java 文件时

import main.java.machine.MyClass;

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

我不明白如何在它们的目录路径之后遵循命名包的命名约定,同时在封闭文件夹之后命名它们(在我的情况下,这将是package machine;有效的)。

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

非常感谢

标签: javamavendirectorypackagenaming

解决方案


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

例如,在您的情况下,如果您创建了包机器,则该包下的类必须具有以下语句:

package machine;

相反,所有想要导入机器包内的类的类都将以这种方式导入它:

import machine;

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


推荐阅读