【问题标题】:Eclipse: The declared package does not match the expected packageEclipse:声明的包与预期的包不匹配
【发布时间】:2011-11-29 12:45:06
【问题描述】:

我在导入外部项目时遇到问题。我去 File -> Import... -> Existing Projects into Workspace,选择项目所在的文件夹并导入所有内容 - 但项目的包名称似乎不是 Eclipse 所期望的。包名都有前缀:

prefix.packagename1
prefix.packagename2

等等

但 Eclipse 期望

src.prefix1.prefix.packagename1
src.prefix1.prefix.packagename2

等等。因为目录是src/prefix1/prefix/package1

我真的不想搞乱外部代码。如何告诉 Eclipse 忽略目录“src/prefix1”?或者我还能做什么?

【问题讨论】:

  • 我在文件开头添加了package (name of package under which the file to be )

标签: java eclipse package


【解决方案1】:

只需进入构建路径并将源路径更改为src/prefix1 而不是src

最简单的方法可能是右键单击src 目录并选择“构建路径/从构建路径中删除”,然后找到src/prefix1 目录,右键单击它并选择“构建路径/用作源”文件夹”。

【讨论】:

  • 我如何撤消刚才所做的一切?我点击了“构建路径/用作源文件夹”,没有任何效果了。编辑:我的问题的答案是进入“配置构建路径”并从列表中删除不是 src/ 或 gen/ 的时髦的东西
  • 请注意,Jon 的建议有效,但可能需要重新启动 Eclipse。
  • !!如果更改源文件夹后仍然看到错误,请构建项目。 Eclipse 有时让我想砸东西。
  • Close/Open prj 为我工作...... Eclipse 是一个大工具,它有时会忘记事情
  • 谢谢伙计,很好的解决方案。
【解决方案2】:

我刚刚遇到这个问题,由于Skeet先生的解决方案对我不起作用,我将分享我是如何解决这个问题的。

原来我在声明源目录之前打开了'src'下的java文件。

在eclipse中右击'src'目录后,选择'build path',然后'Use as Source Folder'

关闭并重新打开已经打开的java文件(F5刷新不起作用)。

提供从“prefix1”开始的 java 文件路径与文件中的包一致(示例来自请求者的问题 prefix1.prefix.packagename2)。这应该工作

Eclipse 不应再抱怨“src”。

【讨论】:

  • 就是这样。很简单,但让我卡了一段时间。谢谢!
  • 在设置构建路径后关闭并重新打开文件对我来说也是必要的。谢谢!
  • 是的!也为我工作。
【解决方案3】:

将您的问题 *.java 文件移动到其他文件夹。

单击“src”项目并按“F5”。

红十字会消失。

将你的 *.java 文件返回到“包路径”,单击“src”项并按“F5”。

应该没问题。

【讨论】:

    【解决方案4】:

    如果您已导入现有项目,则只需删除源文件夹,然后再次将它们添加到构建路径,然后重新启动 eclipse。大多数时候eclipse会一直显示错误,直到你重新启动。

    【讨论】:

      【解决方案5】:

      唯一对我有用的是删除项目,然后再次导入。像魅力一样工作:)

      【讨论】:

        【解决方案6】:

        在 IDE 之外运行失败的构建后发生在我身上。如果清理工作区不起作用,请尝试:1)删除所有项目 2)关闭并重新启动 STS/eclipse,3)重新导入项目

        【讨论】:

          【解决方案7】:

          在导入没有 .classpath 文件的 Android 项目时,有时我会在 Eclipse 中遇到此问题。 Eclipse 创建的与 Android 所期望的并不完全相同。但是,Android .classpath 文件通常都是相对的,所以我只是从另一个项目中复制一个正确的 .classpath 文件到不正确的 .classpath 上。我制作了一个视频来展示我是如何做到这一点的:https://www.youtube.com/watch?v=IVIhgeahS1Ynto

          【讨论】:

            【解决方案8】:

            假设你的项目有一个像 package name1.name2.name3.name4(声明包)

            您的包浏览器显示
            包顶层命名为 name1.name2
            名为 name3.name4 的子包

            您将遇到错误,因为 Eclipse 从您导入的位置开始从磁盘上的文件目录结构中提取包名。

            我的案例涉及更多,可能是因为我使用了指向工作区外文件夹的符号链接。

            我首先尝试了 Build Path.Java Build Path.Source Tab.Link Source Button.Browse to the folder name1 in your package.Folder-name as you like (我认为)。但是有问题。

            然后我从构建路径中删除了该文件夹并尝试了 File > Import... > General > File System > 单击 Next > From Directory > Browse... to folder above name1 > 单击 Advanced 按钮 > 检查 Create links in workspace > 点击完成按钮。

            【讨论】:

            • 是的。在我的例子中,项目名称添加了一个后缀,-2.0.0-SNAPSHOT。删除了该前缀(重命名项目..),一切正常。
            【解决方案9】:

            转到项目的 src 文件夹并将其中的所有代码复制到某个临时位置并构建项目。现在将实际代码从临时位置复制到项目 src。并再次运行构建。问题将得到解决。

            注意:这是 eclipse 特有的。

            【讨论】:

              【解决方案10】:

              我刚才碰巧遇到了同样的问题。但是,前几个答案对我不起作用。我提出一个解决方案:更改 .classpath 文件。例如,您可以像这样定义 classpathentry 节点的路径 : 路径="src/prefix1/java" 或路径=“src/prefix1/resources”。 希望对您有所帮助。

              【讨论】:

                【解决方案11】:

                对我来说,问题是我将现有项目转换为 maven,根据文档创建了文件夹结构,并将“主”文件夹显示为包的一部分。我按照类似于 Jon Skeet / JWoodchuck 的说明进入 Java 构建路径,删除所有损坏的构建路径,然后将我的构建路径添加为 'src/main/java' 和 'src/test/java'作为每个资源文件夹,它解决了这个问题。

                【讨论】:

                  【解决方案12】:

                  构建路径应包含包名称的“直到之前”的路径。

                  例如,如果文件夹结构是:src/main/java/com/example/dao 如果包含 import 语句'package com.example.dao' 的类抱怨不正确的包错误,那么构建路径应该是include:src/main/java 这应该可以解决问题。

                  【讨论】:

                    【解决方案13】:
                    1. 右键单击有包的外部文件夹
                    src.prefix1.prefix.packagename1 
                    src.prefix1.prefix.packagename2
                    
                    1. 单击构建路径 --> 从构建路径中删除。

                    2. 现在转到项目文件夹部分的文件夹 prefix1。

                    3. 右键-->构建路径-->用作源文件夹。

                    4. 完成。包文件夹现在不会显示任何错误。如果仍然显示,只需重新启动项目即可。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2019-07-10
                      • 2021-11-12
                      • 2011-10-23
                      • 1970-01-01
                      • 1970-01-01
                      • 2023-01-13
                      相关资源
                      最近更新 更多