JDK14 无法运行“java --add-opens”

kin*_*roc 5 java codegen swagger

我正在做一个小项目来学习 swagger-codegen。当我执行“mvn clean install”时,出现以下错误:

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 什么也没发生,只是 java显示帮助。

肯定最后一个命令有语法问题,但我不知道究竟是什么......我做错了什么?

小智 2

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

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

我也遇到过类似的情况,但我却选择_JAVA_OPTIONS了过去。您可以通过在调用前加上mvnwith前缀来执行类似的操作_JAVA_OPTIONS,尽管 Maven 可能会覆盖这些内容,并且您必须按照上述方式修改文件。

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

_JAVA_OPTIONS="--add-opens=java.base/java.util=ALL-UNNAMED" swagger-codegen3 generate --lang python --input-spec spec.yaml
Run Code Online (Sandbox Code Playgroud)