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

2022-09-01 04:42:58

当我尝试在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;
}

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


答案 1

试试这个

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

(请参阅 IntelliJ 手册上的使缓存失效


答案 2

该项目包含几个模块。虽然该库已添加到项目库中,但某些模块在其依赖项部分中缺少它。因此,我使用IntelliJ中的以下步骤解决了这个问题

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

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