3

我使用OpenJDK 17和Spring Initializr的 Maven Wrapper 3.8.2 (Maven 项目、JAR 打包、Java 17、Spring Boot 2.6.0)。没有额外的依赖。

user@DESKTOP-U2OU5HG MINGW64 /c/Projects/my-project (master)
$ java -version
openjdk version "17" 2021-09-14
OpenJDK Runtime Environment (build 17+35-2724)
OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)

运行任何./mvnw.cmd -versionor./mvnw.cmd clean install时,我总是收到以下消息:

Unrecognized VM option 'MaxPermSize=512m'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

切换到OpenJDK 16.0.2解决了这个问题,但是,我需要使用 Java 17。

如何让它运行?无处可MaxPermSize=512m设。

4

1 回答 1

8

根据 Java® 开发工具包版本 16/17 工具规范, Indeed-XX:MaxPermSize=size标记如下(请参阅链接):

  • 对于 Java 16,它已过时
  • 对于 Java 17,它已被删除

然而,脚本中的 Maven Wrappermvnw.cmd除了 required 之外JAVA_HOME,还使用了一堆可选的环境变量,例如以前缀M2_HOME开头的和这些。MAVEN_

重要的是MAVEN_OPTS,可能会出现这样一个已删除的 Java 选项,从而导致无法在较新版本上启动 JVM。就我而言,我有类似的东西:

-Xmx4g -XX:MaxPermSize=512m -Dfile.encoding=UTF-8 -Djavax.xml.accessExternalSchema=all

解决方案是从环境变量中删除该选项,或者将此行添加到 Maven Wrapper 脚本以覆盖该MAVEN_OPTS值:

  • 以最小形式:MAVEN_OPTS=
于 2021-10-01T09:02:35.097 回答