首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Maven包装器的Java 17导致无法识别的VM选项“MaxPermSize=512m”

使用Maven包装器的Java 17导致无法识别的VM选项“MaxPermSize=512m”
EN

Stack Overflow用户
提问于 2021-10-01 08:29:45
回答 1查看 11.4K关注 0票数 8

我使用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集。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-01 09:02:35

实际上,根据Java版本16/17工具规范(见链接),-XX:MaxPermSize=size被贴上了如下标签:

然而,mvnw.cmd脚本中的Maven包装器除了必需的JAVA_HOME之外,还使用了一些可选的环境变量,比如M2_HOME,这些变量以MAVEN_前缀开头。

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

代码语言:javascript
运行
复制
MAVEN_OPTS="-Xmx4g -XX:MaxPermSize=512m -Dfile.encoding=UTF-8"

解决方案要么从环境变量中删除该选项,要么将这一行添加到Maven包装脚本中,以最小形式覆盖MAVEN_OPTS值:

代码语言:javascript
运行
复制
MAVEN_OPTS=
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69402824

复制
相关文章

相似问题

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