這個是我最近遇到的,因為本人最近換了電腦,這個電腦的前任是配置好了環境,但是當我用這個環境去做另外一個項目的時候,在maven構建war和jar包的時候,報了這個內存溢出
mvn clean install
就給我報錯了
[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 或更低)
-Xms1024m -Xmx4096m -XX:ReservedCodeCacheSize=512m
在idea啟動配置的vm啟動參數,達到需要的內存,但是改了好幾次地方了,
全局也設置了,在idea 設置里面的maven也弄了!基本所有都弄了,還是報了內存溢出
也還是不想,這個時候看到了一個文章,我的jdk環境會不會是X86也就是32位的,果然是這個原因
我貼一下什么情況
32位 JDK 的內存限制
32位 JVM(Java 虛擬機)最多只能使用 約 1.5~2GB 堆內存。
如果你在 MAVEN_OPTS 中配置了 -Xmx4096m(即 4GB),但使用的是 32位 JDK,Maven 將無法啟動,并拋出錯誤Error occurred during initialization of VMCould not reserve 4096MB of memory.64位 JDK 并非沒有內存限制,而是內存限制遠高于32位 JDK
所以我趕緊去看我JDK是什么
輸入 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 HotSpot(TM) 64-Bit Server VM (build ...)
在更改你的環境變量,注意了,你之前的設置在系統 path要換掉,如果輸入還是之前的版本,將你新弄的排序,弄到最上面,因為我的就是,我輸入
where java
彈出三個,然后輸入java -version 還是X86的,我服了,然后在path把我剛剛新弄的64的排到最上面,然后在輸出就可以了!
然后idea把jdk導入進來,怎么導入,在project setting里面jdk下載路徑弄進去即可!