org.json无法解析为模块?

问题描述

我正在学习Java。要在应用程序中读取JSON,我下载了this JSON library;这是一个自动模块。

我将该库包含在我的模块描述符中,例如:

module art
{
    exports  art.anixt;
    exports  art.coartl;
    exports  art.runeape;
    requires org.json;    // org.json cannot be resolved to a moduleJava(8389908)
}

我的vscode中的settings.json:

{
    "files.exclude": {
        "**/.classpath": true,"**/.project": true,"**/.settings": true,"**/.factorypath": true
    },"java.format.settings.url": "Format.xml","java.format.settings.profile": "style","java.project.referencedLibraries": [
        "lib/**/*.jar" // jar file showing in Referenced library(see screenshot)
    ]
}

如何将jar文件包含在模块中并将其导入Java文件中?

屏幕截图:

screenshot

解决方法

TL; DR -由于此未解决的'Cannot be resolved' errors in projects with module-info.java问题报告,在涉及JPMS和module-info.java时,vscode死于脑筋。>


冗长的版本

根据我的经验,我可以亲自为上述链接的vscode问题报告的报告人提供担保...

...我尝试过Gradle和Maven ...

...

…我发现Gradle和Maven将自动刷新类路径文件并删除我对其的修改,这将带回错误……

...

…为了让Eclipse感到高兴,需要在类路径文件中设置模块路径信息,但是从Gradle或Maven那里并没有很好的处理方法……” >

证明这是vscode问题是完全相同的项目-除了删除您的注释外,其他项目均未更改-在IntelliJ中完全可以编译…

No problems in module-info.java

由于您的项目既不使用Maven也不使用Gradle,所以-相反,选择在div文件夹中的jar中使用基于文件的依赖项mgt -由于您取消了应用任何支持JPMS的插件来解决问题的选项。

例如,通过将以下具有适当配置的pom.xml添加到 lib 到我的项目的实验版本中……

maven-compiler-plugin

…Maven发挥了魔力并成功处理了模块info.java ...

No problems in module-info.java

我已经通过帮助其他堆叠者应用that mrJar plugin mentioned in that vscode bug report成功解决了其他堆叠者的JPMS问题。因此,如果您愿意使用Gradle而不是Maven,我也可以为您提供有关如何配置该插件的建议。