首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >org.json不能解析为模块?

org.json不能解析为模块?
EN

Stack Overflow用户
提问于 2020-10-11 12:07:22
回答 1查看 1.4K关注 0票数 2

我在学爪哇。为了在我的应用程序中读取JSON,我下载了这个JSON库;这是一个自动模块。

我在模块描述符中包含了这个库,如下所示:

代码语言:javascript
复制
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:

代码语言:javascript
复制
{
    "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文件中?

截图:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-11 17:10:01

TL;DR --正如这个未解决的https://github.com/redhat-developer/vscode-java/issues/881问题所报告的那样,vscode对于JPMS和模块-info.java来说是脑死亡。

长线版

根据我自己的经验,我可以亲自为上述链接的vscode问题的记者报告的…提供担保。

“…我试过Gradle和Maven…“ … “…我发现Gradle和Maven将自动刷新类路径文件并删除对它的修改,这将带来错误…“ … “…类路径文件中需要设置模块路径信息,这样Eclipse才能快乐,但是没有好的方法来处理Gradle或Maven…中的模块路径信息“

证明它是vscode问题的证据是,完全相同的项目--除了删除您的注释--在IntelliJ…中编译得非常好

由于您的项目既不使用Maven,也不使用Gradle --而是选择使用lib文件夹中的jar基于文件的依赖mgt --所以情况更糟,因为您已经取消了应用任何JPMS的选项--启用可以解决问题的插件。

例如,将下面的pom.xml与maven-compiler-plugin的适当配置添加到我的项目…的实验版本中

代码语言:javascript
复制
…
<dependencies>
    <dependency>
       <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20200518</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>11</source>
                <target>11</target>
                <compilerArgs>
                    <arg>-Xlint:unchecked</arg>
                    <arg>--add-modules</arg>
                    <arg>org.json</arg>
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>
…

…Maven发挥了它的魔力,成功地处理了模块info.java…。

我已经通过帮助他们应用成功地解决了其他堆栈工人的JPMS问题。因此,如果您愿意使用Gradle而不是Maven,我同样可以建议您如何配置该插件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64303821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档