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

Ahm*_*mad 12 java interface jaxb intellij-idea

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

Sentence sent = new Sentence();
 sent.emptySegments();
Run Code Online (Sandbox Code Playgroud)

错误:

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

Sentence是一个实现接口的类RootElement

import javax.xml.bind.RootElement;
...
public class Sentence extends MarshallableRootElement implements RootElement   {
Run Code Online (Sandbox Code Playgroud)

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

public interface RootElement extends Element {
    void validate() throws StructureValidationException;
}
Run Code Online (Sandbox Code Playgroud)

上面的声明位于一个名为的jar文件中jaxb-rt-1.0-ea.jar,它存在于Project Librarians中.

小智 18

File -> Invalidate Caches/ Restart 这对我长时间无效后有用


Ahm*_*mad 12

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

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

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

  • 为什么我要这样做? (2认同)

Mee*_*ary 11

尝试这个

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

  • 有时 Intellij 只是 DumbJ。为我工作。 (9认同)

小智 6

重建项目对我有用。


小智 6

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