我使用OpenJDK 17与来自弹簧起爆的Maven包装器3.8.2 (Maven项目、JAR打包、Java 17、SpringBoot2.6.0)。没有额外的依赖项。
U2OU5HG MINGW64 /c/Projects/my-project (主版)$ java -version OpenJDK版本"17“2021-09-14 OpenJDK Runtime Environment (build 17+35-2724) openjdk 64位服务器VM (build 17+35-2724,混合模式,共享)
在运行任何./mvnw.cmd -version
或./mvnw.cmd clean install
时,我总是收到以下消息:
无法识别的VM选项'MaxPermSize=512m‘错误:无法创建Java。错误:发生致命异常。程序将退出。
切换到OpenJDK 16.0.2解决了这个问题,但是,我需要使用Java 17。
怎么让它运行?没有任何地方MaxPermSize=512m
集。
发布于 2021-10-01 09:02:35
实际上,根据Java版本16/17工具规范(见链接),-XX:MaxPermSize=size
被贴上了如下标签:
然而,mvnw.cmd
脚本中的Maven包装器除了必需的JAVA_HOME
之外,还使用了一些可选的环境变量,比如M2_HOME
,这些变量以MAVEN_
前缀开头。
重要的是MAVEN_OPTS
,其中可能会出现这样一个已删除的Java选项,从而导致无法在较新版本上启动JVM。就我而言,我有这样的事情:
MAVEN_OPTS="-Xmx4g -XX:MaxPermSize=512m -Dfile.encoding=UTF-8"
解决方案要么从环境变量中删除该选项,要么将这一行添加到Maven包装脚本中,以最小形式覆盖MAVEN_OPTS
值:
MAVEN_OPTS=
https://stackoverflow.com/questions/69402824
复制相似问题