我使用OpenJDK 17和来自Spring Initializr的Maven Wrapper 3.8.2(Maven项目,Java 17,Sping 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 -version
或./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
设置。
2条答案
按热度按时间t98cgbkg1#
实际上,根据Java® Development Kit Version 16/17工具规范,
-XX:MaxPermSize=size
的标签如下(请参阅链接):然而,
mvnw.cmd
脚本中的Maven Wrapper除了必需的JAVA_HOME
之外,还使用了一堆 * 可选 * 环境变量,例如M2_HOME
和以MAVEN_
前缀开头的环境变量。重要的一个是
MAVEN_OPTS
,其中可能会出现这样一个删除的Java选项,导致无法在新版本上启动JVM。在我的情况下,我有这样的东西:解决方案是从环境变量中删除该选项,或者将这一行添加到Maven Wrapper脚本中以覆盖
MAVEN_OPTS
值,以最小形式:yyhrrdl82#
在jdk17中使用MaxMetaspaceSize代替MaxPermSize,MetaspaceSize代替PermSize。
参考:https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html