为什么eclipse不能在同一个包中解析类?

时间:2012-07-19 20:34:03

标签: eclipse git dependency-management

我点击F5~1000次并重新启动eclipse(也使用-clean),删除/ bin,但没有任何帮助。手动导入DoodleClient没有帮助。 DoodleClient存在并且非常好,一切都在以前工作。点击“导入'DoodleClient'......”什么都不做。

在发生此问题之前我做了什么:

  1. 我添加了* .class到.gitignore
  2. git rm *.class
  3. 在下一次拉动中,git
  4. 删除了.class文件的hunderts

    enter image description here

16 个答案:

答案 0 :(得分:73)

或者,您可以突出显示该项目:

项目菜单中选择Clean ...,如果您已激活Build Automatically选项(在同一菜单中),则会重新生成这些类。

答案 1 :(得分:17)

我可以解决它: 在另一个项目(来自相同的git repo)上,我在不同包中的几个文件上遇到了同样的问题。我所要做的只是在文件中写入一个空白区域,再次将其删除并保存,因此eclipse会重新编译它(我猜)。

某种奇怪的行为......:S

答案 2 :(得分:11)

我在Maven项目中遇到了同样的错误。运行Maven清理并关闭项目并重新打开对我不起作用。 右键单击项目 - > Maven - >更新项目为我工作。

答案 3 :(得分:6)

我尝试刷新工作区(F5)并清理项目,但这并没有成功。对我有用的是右键单击项目并选择“关闭项目”。

关闭后,我重新打开了这个项目。这似乎刷新了Eclipse中项目的所有文件。

答案 4 :(得分:4)

幸运的是我没有1000的错误;对于我的20多个分辨率问题,我做的是:

  1. 删除违规类名称的一部分
  2. 将光标放在末尾(类名称的剩余片段),执行自动建议(Ctrl +空格)并从建议中选择正确的类
  3. 保存
  4. 乏味但有效......

答案 5 :(得分:2)

我要做的第一件事就是在同一个包中创建一个新类,并检查它是否可以从这个有问题的类中看到。

此外,我不确定,但您可以检查更改班级名称" D"对于不同的东西。

和...检查文件是否确实存在

答案 6 :(得分:2)

我遇到了同样的问题。我尝试再次使用静态方法调用添加语句并删除旧语句。 Eclipse甚至帮助我完成了自动完成工作,之后又重新强调了这一说法。在我的情况下关闭项目并在那之后再次导入它。

答案 7 :(得分:2)

我的项目资源管理器中有3个项目,它们之间存在依赖关系。

他们都疯了,我在所有3个项目中都有9000多个错误。

事实证明,以正确的顺序(中间,顶部,底部)清洁每一个都解决了所有问题。

以正确的顺序清洁是解决我的问题的原因。

只是觉得值得一提:)

答案 8 :(得分:1)

我每天都有同样的问题,解决方案每次都不同。 :) 你可以试试这样的东西:

  • 项目菜单 - 清洁
  • 项目 - Maven - 更新项目(Alt + F5)
  • 项目 - 刷新
  • 项目 - 运行方式 - Maven clean
  • 项目 - 运行方式 - Maven安装
  • 重启Eclipse
  • 从servlet容器中删除应用程序(如果是web应用程序)
  • 祈祷.. :))

答案 9 :(得分:1)

右键单击项目->构建路径->配置构建路径-> Java构建路径-> 然后修复JRE系统库中的问题

答案 10 :(得分:0)

编译器检查编译文件的依赖性,而不是源代码。所以这意味着编译器不会提交DoodleClient.class文件。 要检查是否有已编译的类,请打开导航器视图(for model_name in dir(models): model = getattr(models, model_name) if isinstance(model, ModelBase): admin.site.register(model) )并查找包含.class文件的目录(对于Maven通常为Window -> Show View -> Navigatorbin/<project>)并检查是否存在你有DoodleClient.class文件。如果你不能,你可以:

  1. 检查.classpath文件以查看DoodleClient.java是否出现在某些classpathentry中的某个target/classes属性中(如果有,则将其从排除属性中删除)
  2. 如果您使用Maven,请检查DoodleClient.java是否出现在&lt; exclude&gt;&lt; / exclude&gt;中pom.xml中的标记
  3. 将必要的java文件/包复制到磁盘上的其他文件夹,使用javac从dos控制台手动编译DoodleClient.java,然后在项目的类文件夹中复制DoodleClient.class。希望这会有所帮助。

答案 11 :(得分:0)

就我而言,DoodleClient类的所有行都被注释掉了。这不是我写课的方式,它是解决SVN冲突不正确的副作用。因此,如果您刚刚对项目进行了更新,则可能需要再次检查文件的内容。

答案 12 :(得分:0)

右键单击项目,然后右键单击 Maven ,然后更新项目

答案 13 :(得分:0)

尝试了许多以上建议,但没有成功(Eclipse重新启动,多次清理,自动建议等)。使我摆脱困境的是硬重置为先前的提交(我正在使用git),构建(这次是成功),然后再次提取项目的最新资源并进行重建。

答案 14 :(得分:0)

在我的情况下是我的 Java构建路径->源没有在包含源路径中检查包含测试源,并且我的代码是JUnit < / p>

答案 15 :(得分:0)

我在Eclipse中的Java项目也遇到了同样的问题。 mvn清理项目并没有帮助。我必须编辑所谓的“缺失”类,保存它,然后清理并重建项目。解决了这个问题。