【问题标题】:Class file not found in IntelliJ在 IntelliJ 中找不到类文件
【发布时间】:2010-02-04 12:46:05
【问题描述】:

在 IntelliJ 中,当我尝试编译时出现这个奇怪的错误。

Cannot find annotation method 'cascade()' in type 'javax.persistence.ManyToOne': class file for javax.persistence.ManyToOne not found

我知道,问题出在哪里似乎很明显,但是在这个问题上花了太多时间,我现在把信任交给你了!

我使用ideaCommunity-9,在那里我为JBoss 创建了一个全局库,其中包含所有JBoss jar,包括ejb3-persistence.jar。我的模块包含这个库,我已将它移到依赖项的顶部。 在类路径中没有其他地方我有一个 javax.persistence.ManyToOne 类,它也可以在 IntelliJ 中毫无问题地打开。
如果我打开出现编译错误的文件,IntelliJ 不会显示任何问题,并且还会在按 Ctrl+B 时导航到类文件。
代码也是用 ant 构建的,在这里可以正常工作。

除了上述错误之外,我还沿着同一路径获得了另外六个错误(表中的名称等)——所有这些都与 JPA 相关。我还收到一条消息说“请向 JDC yada yada yada 提交错误。”

【问题讨论】:

  • 你能用键盘快捷键+N打开'ManyToOne'类吗?
  • 是的,我在查看 ManyToOne 的类文件时没有问题。它在 ejb3-persistence.jar 中为我提供了一个位置,该位置再次位于 JBoss 内。它还有方法 cascade()。

标签: java jpa intellij-idea


【解决方案1】:

尝试在您的依赖项中勾选“导出”复选框。

我的意思是:“文件”菜单 -> 项目结构 -> 模块 -> 依赖项,在那里您可以看到模块中包含的库。您还应该在“导出”列中的每个库附近看到一个复选框。

【讨论】:

  • 我遇到了类似的问题(不同的注释相同的错误)。这对我有用。谢谢!
  • 有时在此之后可能需要重新启动 Intellij。
  • 这对我不起作用。而是 Build -> Rebuild Project 工作
【解决方案2】:

我自己刚得到这个,但这些都不是我的问题。我从 github 下载了一个项目,然后在尝试运行 junit 测试后在 intelli J 中打开了问题。

解决方案:项目结构 -> 模块 -> 'Project_Name' -> 源(选项卡) -> 单击 src 文件夹 -> 标记为:源

这应该将 src 突出显示为蓝色,并且所有类文件都应该是带有 C 的圆圈,而不是看起来像普通文件。尝试再次运行测试,看看是否成功。

【讨论】:

    【解决方案3】:

    我确定,现在回答为时已晚,但我必须针对此错误采用不同的方法来解决此问题。

    我必须将其创建为全局库并将该库添加到模块中,然后才解决了错误。

    【讨论】:

      【解决方案4】:

      是不是和这个SO question很像?

      解决方案是添加所有 JBoss jar(您已添加),以及所有与持久性相关的库(如 Hibernate)

      例如看到这个JBoss project configuration

      alt text http://jdick.co.uk/blog/wp-content/uploads/2008/12/projectstructure1.jpg

      简而言之,ejb3-persistence.jar 可能不是这里的问题,只是缺少 其他 元素的症状。
      或者,如果是问题,可能与未正确部署有关(对于WebApp configuration)。

      【讨论】:

        【解决方案5】:

        这是一个想法: 也许你有多个版本的 jar 文件。 在文件夹层次结构中搜索文件ejb3-persistence.jar, 使用文件管理工具,例如 Total Commander。 类路径中文件的多次出现可能会混淆 IntelliJ Idea 无法识别正确 jar 中的正确类。

        【讨论】:

          【解决方案6】:

          有一个类似的问题(“找不到类 spring...DefaultResourceLoader 即使它在我的 maven 依赖项中)并且重新验证缓存的任何调整似乎都没有帮助。吹走我的 $HOME /.Idea* 路径和(基本上)从头开始为我修复了它。至少现在......

          【讨论】:

            【解决方案7】:

            我在尝试执行 .groovy 测试类时收到 class not found 错误消息,该测试类引用了 .groovy 文件(位于子模块源目录的根目录中 - 即没有包)。

            将源文件.groovy 移动到一个包中,为我解决了这个问题。

            移动:

            src/main/groovy/RunMe.groovy
            

            src/main/groovy/somePackage/RunMe.groovy
            

            【讨论】:

              【解决方案8】:

              在 IntelliJ 中,当我在文件级别构建 (ctrl+shift+F9) 时遇到了这个问题。

              原因是,我在同一个 maven 项目中的其他文件中进行了更改,但没有被选中。

              我通过在项目级别构建解决了它(在intellij中选择Maven项目并按ctrl+shift+F9)

              【讨论】:

                猜你喜欢
                • 2017-01-22
                • 1970-01-01
                • 1970-01-01
                • 2014-09-22
                • 1970-01-01
                • 1970-01-01
                • 2010-11-08
                • 1970-01-01
                相关资源
                最近更新 更多