由于“找不到符号类X”错误,无法在Intellij Idea中编译java类

时间:2013-12-01 16:17:07

标签: java intellij-idea

我在项目中从头开始创建了新的Java模块。 "创建' src'夹"在模块创建向导中选择。有单一的" com"源文件夹中的包,包含两个公共类(比如A和B)。一个类实例化B类。 IDE不显示错误,并且在" ctrl + B"上打开B类源。当光标位于A类源中的类名时按下。但是当我尝试编译A类时(通过上下文菜单 - >"编译A.java类")会显示以下错误

  

错误:(15,20)找不到符号类B

" SRC"文件夹被标记为源根。

看起来像IDE错误。

有人建议做" File-> Invalidate Caches"解决问题也问SO。我试过了,但没有用。

可能的原因是什么以及如何解决?

-

Intellij Idea Ultimate 11.1.5。

IDE Java:1.7.0_45

Project SDK:1.6.0_45

7 个答案:

答案 0 :(得分:25)

首先尝试编译整个项目(或至少是类B)。

如果编译A,则无法找到类B,因为它尚未编译(因此,不存在字节码B.class文件)。

这不直观,但确实如此。编译单个类时,IDEA不会自动编译依赖类。

答案 1 :(得分:19)

“右键点击项目 - >编译”

这确实为我解决了同样的问题。

答案 2 :(得分:10)

选择构建 - >重建项目,它对我有用!

答案 3 :(得分:2)

如果包中的类依赖于包中的另一个类,则需要创建类路径。否则,编译器不知道其他类实际存在。您的IDE可能固有地知道这些类在同一个包中,这就是它没有显示任何错误的原因。

您可以通过将两个类作为参数提供给编译器来解决此问题(我不熟悉您用于编译的工具,因此可能无法实现),或者通过编译包外的类导入包'com'。这两个都将创建类路径文件以及类文件。

答案 4 :(得分:0)

右击项目:Maven - >再次导入

这适用于Intellij Mac。

答案 5 :(得分:0)

如果无效的笔迹无法解决问题,或重建projet。但是,maven全新安装的构建效果很好。

有时,原因是tomcat的任务。如果您的专家构建良好,则没有理由认为错误cant find symbol。因此,您可以编辑tomcat conf,在设置启动前检查是否有任务,只需删除这些任务即可。 Tomcat只采用Maven构建。

答案 6 :(得分:0)

对我来说,使缓存无效并重新加载项目有效。请参阅以下步骤。

在 Mac 上

file > Invalidate caches.. > Invalidate and restart

然后转到有问题的 pom.xml 文件,

CMD + SHIFT + A > RELOAD PROJECT