【问题标题】:"Cannot find symbol" errors in NetBeansNetBeans 中的“找不到符号”错误
【发布时间】:2012-01-22 12:47:54
【问题描述】:

我使用 NetBeans 7、Maven 和 NetBeans 平台从事一个学校项目。该项目是使用“Maven/POM 项目”项目模板创建的。它是一个多层“企业”应用程序,使用多个模块(模型、集成、业务、演示、富客户端应用程序本身以及其他几个模块)。

这些模块之间存在依赖关系(但没有循环依赖关系)。问题是,无论是 Maven 还是 NetBeans,都会感到困惑。有几种类型的问题看似看似没有任何触发因素。我必须不断重新编译模块、关闭和重新打开 NetBeans、清除 NetBeans 缓存、删除和读取依赖项等等,以暂时解决问题。在 Windows XP SP3 和 Mac OS X 上安装两种不同的 NetBeans 时,我一直遇到这些问题。

症状是:

1) 有时 NetBeans 决定不存在从另一个模块导入的类(我收到 cannot find symbol 错误。这种情况反复发生,有时发生在我几秒钟前成功编译的模块中。大多数时候,重新编译依赖项没有帮助。在POM中声明了必要的依赖项,jar文件存在,如果我在项目视图中展开它们,我可以看到有问题的类。

2) 有时 NetBeans 决定导入类的方法实际上并没有抛出它声明要抛出的异常。由于对此类方法的调用通常被 try 块包围,因此 NetBeans 会显示错误消息 a.package.SomeException is never thrown in body of corresponding try statement。如果我不删除 try 块,则模块不会因为 NetBeans 而编译。如果确实删除了该块,则模块不会因为 Maven 编译(Maven,出于某种原因,可以看到异常,并抱怨它没有被捕获)。这也反复发生,我不太确定如何可靠地解决这个问题。

在这一点上,Maven 和 NetBeans 的问题非常严重,我实际上无法处理该项目。如果我不必使用 NetBeans 和 Maven,我现在应该回到 vim 和 Makefiles 了。至少有人认识到这些问题吗?

编辑:我已经提交了这个项目,因为我已经完成了一些额外的工作,它得到了 20 分中的 30 分,在它离开 alpha 阶段之前,我希望永远不会必须再次使用 NetBeans。

【问题讨论】:

  • 尝试在命令行中使用 maven 在 netbeans 之外的项目中,看看问题是来自 netbeans 还是 maven。
  • 我刚刚升级到 NetBeans 7.1。现在,Maven 编译一切都没有问题,但 NetBeans 仍然在某些文件中显示找不到符号
  • 我只是想知道这些事情是如何发生的。怎么可能在这个...软件中存在这个重大错误,使它几乎无法使用,每个人都假装它不存在?
  • 在netbeans中,你确定你的项目是maven项目吗? (-> 在项目窗口中,项目标志节点是一个杯子,左上角有一个小“m”)。
  • 它是maven项目好吧,除了它是一个使用maven的NetBeans平台应用程序,所以模块容器的标志看起来像字母“ma”,各个模块的标志看起来像带有“m”的拼图"在角落里。

标签: netbeans maven


【解决方案1】:

在 Netbeans 7.0.0 的多模块 maven 项目中,我有一个 is never thrown 屏蔽 cannot find symbol

有问题的符号是我的 maven 主项目下另一个模块中的一个类。

我重构/重命名了未找到的类 - 这解决了问题。然后我将其重命名 - 问题仍然存在。

无论如何都不理想,但我想我会分享。

【讨论】:

  • 这似乎不是我的情况,但它可能对其他人有用,所以感谢您的评论。
  • 谢谢,这有帮助。多模块项目,其中的依赖项被标记为缺失(找不到符号),即使它存在。烦人的错误。重命名和重建有帮助。
【解决方案2】:

我遇到了 netbeans 标记错误的问题'...在相应的 try 语句的主体中永远不会抛出异常' 项目可以构建,但错误消息不会消失。 最后通过退出并重新打开netbeans来修复它。

我在 Mac 上,关闭按钮实际上并没有关闭 netbeans,需要完全退出。

【讨论】:

    【解决方案3】:

    删除依赖项、构建(并获得编译错误),然后重新添加它(手动、从 pom.xml 或从界面)对我有帮助。但我同意这是一个重大错误。

    【讨论】:

      【解决方案4】:

      我曾经在使用 NetBeans 8.0.2 时遇到过这种情况。这个问题显然与龙目岛项目有关,但我不知道为什么会发生。我安装了 maven 并在我的每个项目上都进行了“mvn clean install”,这似乎解决了这个问题。在那之后,NetBeans 又开始工作了。

      【讨论】:

        【解决方案5】:

        如果您有多个项目,请注意保存时编译的 netbeans 选项,如果您的某些依赖项已打开此选项,则主项目的编译将失败,禁用保存时自动编译,重新编译依赖项(清理并构建) 你应该没事。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多