Java无法访问类,找不到类文件

时间:2016-07-24 07:18:26

标签: java intellij-idea interface jaxb

当我尝试在IntelliJ中创建项目时,我在此行收到以下错误:

Sentence sent = new Sentence();
 sent.emptySegments();

错误:

Error:(151, 10) java: cannot access javax.xml.bind.RootElement
class file for javax.xml.bind.RootElement not found

Sentence是一个实现RootElement 界面的类

import javax.xml.bind.RootElement;
...
public class Sentence extends MarshallableRootElement implements RootElement   {

所有包都存在,我可以跳到每个界面或类的声明,但我不知道为什么IntellJ说它无法访问或找到它们?但是RootElement是一个接口,而不是一个类

public interface RootElement extends Element {
    void validate() throws StructureValidationException;
}

上述声明位于名为jaxb-rt-1.0-ea.jar的jar文件中,它存在于项目馆员中。

9 个答案:

答案 0 :(得分:16)

尝试一下

  1. 转到文件
  2. 使缓存无效/重新启动
  3. 您只能选择无效并重新启动

答案 1 :(得分:12)

该项目包含几个模块。虽然库已添加到项目库中,但某些模块在其依赖项部分中缺少它。所以我使用IntelliJ

中的以下步骤解决了这个问题

创建模块库并将其添加到模块依赖项:

  1. 打开“项目结构”对话框(例如Ctrl + Shift + Alt + S)。
  2. 在对话框的左侧窗格中,选择“模块”。
  3. 在右侧窗格中,选择您感兴趣的模块。
  4. 在对话框的右侧,在“模块”页面上,选择“依赖关系”选项卡。
  5. 在“依赖关系”选项卡上,单击“+”(右上角),然后选择“Jars”或“目录”。
  6. 在打开的对话框中,选择所需的文件和文件夹。这些可能 是个人.class和.java文件,目录和档案
    (.jar和.zip)包含这些文件以及带有
    的目录 Java本机库(.dll,.so或.jnilib)。
  7. 单击“确定”。如有必要,请选择“导出”选项并更改依赖关系范围。
  8. 在“项目结构”对话框中单击“确定”。

答案 2 :(得分:2)

文件->使高速缓存无效/重新启动 经过长时间的无能为力

答案 3 :(得分:1)

这也可能是因为您在classpath中没有依赖项,而在依赖项中使用了依赖项。
例如:您使用的是库A,但是从A使用的类具有库B的超类。但是您没有将B添加到类路径中。

答案 4 :(得分:1)

删除.idea文件夹然后运行Invalidate Caches/Restart对我有用。

答案 5 :(得分:0)

重建项目对我有用。

答案 6 :(得分:0)

我的Gradle / IntelliJ“大锤子”

(可选,但首选)。关闭IntelliJ或任何其他Java IDE的所有实例。

删除“ .idea”文件夹(<<特定于intellij或您的IDE使用的任何“工作区”文件夹)

..............

./gradlew --stop       
      OR
gradle --stop

(现在删除文件夹)

rm -rf $HOME/.gradle/caches/

rm -rf $HOME/.gradle/build-cache-tmp/

(现在恢复正常的gradlew命令,如:)

./gradlew clean build

答案 7 :(得分:0)

对于我刚工作,关闭windows Defender/添加排除项目文件夹/idea进程。

答案 8 :(得分:0)

如果使用 maven 范围运行时导入库,可能会发生类似的问题。

在这种情况下,位于 src/main/java 下的类无法访问它。

只有 src/test/java 中的类可以直接使用运行时依赖项。