为什么有时会发现Java包名与文件夹结构不同?

为什么有时会发现Java包名与文件夹结构不同?,java,eclipse,Java,Eclipse,当我在Java开发中使用Eclipse时,似乎永远无法使包名和文件夹结构有所不同 例如,如果创建文件夹结构src/com/naishe/test并在其下创建类,则包名将为com.naishe.test,请参阅: 但是,我看到了一个项目示例(maven测试),其中它们的类路径是: src/test/java/uk/co/automatictester/jwebfwk/page/objects/MainPage.java 包的定义是: package uk.co.automatictester.

当我在Java开发中使用Eclipse时,似乎永远无法使包名和文件夹结构有所不同

例如,如果创建文件夹结构
src/com/naishe/test
并在其下创建类,则包名将为
com.naishe.test
,请参阅:

但是,我看到了一个项目示例(maven测试),其中它们的类路径是:

src/test/java/uk/co/automatictester/jwebfwk/page/objects/MainPage.java
包的定义是:

package uk.co.automatictester.jwebfwk.page.objects;

public class MainPage extends ParentPage {
 ...
}
前面的
test/java
不在包名中


它是如何完成的(在Eclipse中)?

包名从源目录的底部开始。如果您将src/test/java设置为源目录,则给出的示例是正确的。

这取决于您已设置为源目录的内容,例如,右键单击directoy树中的任何文件夹,然后放置Build Path->use as source folder

,如果我理解正确,您可以通过创建一个源文件夹并将其命名为src/test/java来完成请求:右键单击项目、新建和源文件夹。

在我看来,您有一个maven项目

要在eclipse中正确显示此项目,有两个选项:

  • 下载适用于eclipse和Linux的maven插件 然后您可以将该项目作为maven项目。你会 在项目中自动获取正确的结构
  • 另一个选项是在控制台中运行mvneclipse:eclipse。这将把.project和.classpath添加到您的项目中。日蚀 将正确显示它们

  • 我非常建议您研究
    类路径
    ,而不是试图从试图对您隐藏这些东西的工具的角度来解释它。如果您知道Java类路径是如何工作的,您就不必再对这些事情感到疑惑了。这是一个承诺。@Gimby谢谢你的建议。