声明的软件包“”与预期的软件包“ src”不匹配

时间:2020-06-26 11:17:11

标签: java

我在Atom编辑器中收到此错误。第一次遇到它,现在它显示在我所有的Java文件中。 我该如何摆脱呢?

1 个答案:

答案 0 :(得分:2)

在Java中,程序包必须匹配目录结构,这适用于类文件和源(java)文件。所以,如果您有:

package foo.bar;

public class Baz {}

然后,java文件必须位于/X/foo/bar/Baz.java,并且如果您要将其作为类文件运行,则它必须位于/X/foo/bar/Baz.class,其中X是您想要的任何东西,并且被视为“根” -例如,X是要放在类路径上的内容。不是/X/foo/bar

您遇到了相反的情况:您已经告诉原子编辑器说/Users/home/Corvo/workspace/CorvosProject是根目录,而源文件位于/Users/home/Corvo/workspace/CorvosProject/src/Hello.java中。您的Hello.java文件根本不包含package语句(这是您稍后要解决的问题)。因此,相对于根目录,文件位于src/Hello.java处,并因此出现错误。您实际上并不想通过在文件中放入package src;来进行修复-这没有任何意义,包名应该描述产品/库/应用程序以及所有者/作者,以及{{1} }因此是完全不合适的。解决方法是告诉Atom,“根源目录”不是src,而是/Users/home/Corvo/workspace/CorvosProject

在配置屏幕中四处寻找,或者检查是否可以右键单击文件夹以将它们配置为源根目录;如果是这种情况,请取消设置/Users/home/Corvo/workspace/CorvosProject/src,然后设置/Users/home/Corvo/workspace/CorvosProject(java项目可以具有多个源根文件夹,因此为什么可以在每个文件夹中进行设置)。

Atom在后台使用Eclipse,并且Eclipse项目可以具有任意数量的源根。

相关问题