Maven 编译过程中发生了 Java Heap Space 内存溢出(OutOfMemoryError)

这个是我最近遇到的,因为本人最近换了电脑,这个电脑的前任是配置好了环境,但是当我用这个环境去做另外一个项目的时候,在maven构建war和jar包的时候,报了这个内存溢出

java 复制代码
mvn clean install 

就给我报错了

java 复制代码
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) 
on project epass.core: Fatal error compiling: java.lang.OutOfMemoryError: 

具体信息就不给出来了,就是说这个项目启动的时候需要的内存有点大,因为我用的是idea编辑器,所以自然而然的就想在idea启动的vm参数里面加这段

原因:默认的 Maven 编译器插件堆内存限制太低(通常是 512MB 或更低)

java 复制代码
-Xms1024m -Xmx4096m -XX:ReservedCodeCacheSize=512m

在idea启动配置的vm启动参数,达到需要的内存,但是改了好几次地方了,

全局也设置了,在idea 设置里面的maven也弄了!基本所有都弄了,还是报了内存溢出

也还是不想,这个时候看到了一个文章,我的jdk环境会不会是X86也就是32位的,果然是这个原因

我贴一下什么情况

java 复制代码
32位 JDK 的内存限制
32位 JVM(Java 虚拟机)最多只能使用 约 1.5~2GB 堆内存。
如果你在 MAVEN_OPTS 中配置了 -Xmx4096m(即 4GB),但使用的是 32位 JDK,Maven 将无法启动,并抛出错误
  Error occurred during initialization of VM
  Could not reserve 4096MB of memory.


64位 JDK 并非没有内存限制,而是内存限制远高于32位 JDK

所以我赶紧去看我JDK是什么

java 复制代码
输入 java -version
java version "1.8.0_441"
Java(TM) SE Runtime Environment (build 1.8.0_441-b07)
Java HotSpot(TM) Client VM (build 25.441-b07, mixed mode)

"Client VM" 表示这是 32位(x86)JDK/JRE

原来如此

然后我就换了jdk了,换64位的JDK

是 64位(x64)JDK,你会看到

java 复制代码
Java HotSpot(TM) 64-Bit Server VM (build ...)

在更改你的环境变量,注意了,你之前的设置在系统 path要换掉,如果输入还是之前的版本,将你新弄的排序,弄到最上面,因为我的就是,我输入

java 复制代码
where java

弹出三个,然后输入java -version 还是X86的,我服了,然后在path把我刚刚新弄的64的排到最上面,然后在输出就可以了!

然后idea把jdk导入进来,怎么导入,在project setting里面jdk下载路径弄进去即可!

相关推荐
秋939 分钟前
Go语言(Golang)开发工程师全景解析:岗位职责·语言优势与使用场景·各城市薪资·发展前景·高考志愿填报(2026版)
开发语言·golang·高考
huangdong_2 小时前
1688商品图片采集技术解析:登录态处理与SKU图自动分类
开发语言
马士兵教育2 小时前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
chase_my_dream2 小时前
C++ + SLAM 高频面试问题整理
开发语言·c++·面试
snow@li2 小时前
Java:理解 Gradle / 后端项目的管家 / 打包SpringBoot 应用 / 完成编译、下载依赖、运行测试、打包 JAR/WAR / 速查表
java
Cloud_Shy6182 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
云烟成雨TD2 小时前
Spring AI 1.x 系列【57】动态工具发现:Tool Search Tool
java·人工智能·spring
zfoo-framework2 小时前
[修改代码使用]codex官方app中使用中转(不需要cc-switch) 1.config.toml 2.sk方式登录
java
天佑木枫3 小时前
15天Python入门系列 · 序
开发语言·python
逍遥德3 小时前
MQTT教程详解-05.SpringBoot集成mqtt client 性能分析
java·spring boot·spring·mt