首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDK14无法运行"java --“

JDK14无法运行"java --“
EN

Stack Overflow用户
提问于 2021-04-15 15:50:05
回答 3查看 2.7K关注 0票数 6

我在做一个小项目来学习装模作样的代码。当我执行"mvn干净安装“时,下一个错误将出现:

Unable to make public boolean java.util.Collections$EmptyMap.isEmpty() accessible: module java.base does not "opens java.util" to unnamed module @1e1b061

然后

Failed to execute goal io.swagger.codegen.v3:swagger-codegen-maven-plugin:3.0.18:generate (default) on project swgtst-api: Code generation failed. See above for the full exception.

当我试图像这里所写的那样用java --add-opens=java.base/java.util=ALL-UNNAMED来解决这个问题时,https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-2F61F3A9-0979-46A4-8B49-325BA0EE8B66什么都没有发生,只显示了https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-2F61F3A9-0979-46A4-8B49-325BA0EE8B66帮助。

当然,最后一个命令在语法上有问题,但我不知道具体是什么.我做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2021-06-30 05:04:39

该选项不会单独执行任何操作,而是修改Java调用的运行方式。您仍然需要将该选项添加到运行java时调用的mvn中。

这样做的一种方法是将选项添加到Maven文件中(其他人可以提供帮助,也可以搜索如何在Maven文件中设置Java选项)。

我遇到了类似的情况,而是使用_JAVA_OPTIONS来传递它。您可以通过在mvn的调用前加上_JAVA_OPTIONS来做类似的事情,尽管Maven可能会覆盖这些调用,并且您必须像上面描述的那样修改文件。

作为参考,下面是我成功使用的命令:

代码语言:javascript
复制
_JAVA_OPTIONS="--add-opens=java.base/java.util=ALL-UNNAMED" swagger-codegen3 generate --lang python --input-spec spec.yaml
票数 2
EN

Stack Overflow用户

发布于 2022-07-13 20:12:15

此错误表明代码生成插件无法通过反射访问java.basejava.util包。在这些情况下,JDK 16+抛出异常而不是警告。 要在JDK 16+环境中执行codegen,必须设置以下JVM选项以允许访问这些包:

代码语言:javascript
复制
--add-opens=java.base/java.util=ALL-UNNAMED

要将maven配置为在运行时使用此选项,请在路径jvm.config中创建一个文件${maven.projectBasedir}/.mvn,并将上面的选项添加到该文件中。 有关更多信息,请参见这里: -加-打开 jva.config文件

票数 0
EN

Stack Overflow用户

发布于 2022-10-13 10:29:36

我也有同样的问题。我可以通过升级车把来解决这一问题,这是一种傲慢的代码生成依赖:

代码语言:javascript
复制
        <plugin>
            <groupId>io.swagger.codegen.v3</groupId>
            <artifactId>swagger-codegen-maven-plugin</artifactId>
            <dependencies>
                <dependency>
                    <groupId>com.github.jknack</groupId>
                    <artifactId>handlebars</artifactId>
                    <version>4.3.0</version>
                </dependency>
            </dependencies>
            <executions>
             .
             .
             .
        </plugin>

另一种选择是简单地将您的swagger代码maven插件升级到3.0.0或更高版本。这里有更多的信息

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

https://stackoverflow.com/questions/67111763

复制
相关文章

相似问题

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