gpt4 book ai didi

java - 使用 Apache Maven 在 IntelliJ 中构建 Java 项目的内存问题,发生在 Java 7 中,使用 Java 8 构建良好

转载 作者:行者123 更新时间:2023-11-30 11:08:33 26 4
gpt4 key购买 nike

尝试使用 Apache Maven 在 IntelliJ 14.0.3 中构建 Java 项目时收到以下错误:

Error: Abnormal build process termination
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine
Error: A fatal exception has occurred. Program will exit.

我使用的是 Java 1.7.0_75。但是,如果我将项目切换为使用 Java 1.8.0_25,那么该项目将会构建。唯一的问题是我使用的是 Spring 2.5,它认为 Java 1.8 是 Java 1.4,这会导致其他问题。不幸的是,升级 Spring 不是一种选择。

我运行的是 Windows 7 企业版 64 位,内存为 8gb,最近从 4gb 升级。当我收到此错误时,有足够的可用内存,并且我在 idea.exe.vmoptions 文件中为 IntelliJ 分配了 1024mb。

对于使用相同版本的 Java 构建相同项目的其他人,似乎不会发生此问题。他们使用的是 IntelliJ 13.1.4,并且在 idea.exe.vmoptions. 中也只分配了 512mb。我最初也使用 IntelliJ 13.1.4,但收到了与我收到的类似的错误现在。

对可能发生的事情有什么想法吗?


编辑:对于任何感兴趣的人,我仍然没有弄清楚这个错误。我对我的计算机进行了完全重新镜像,但问题似乎仍在发生,这让我相信它实际上可能是物理问题。我也在考虑这可能与内存泄漏或内存碎片有关,导致 malloc 在 java 尝试分配内存时失败,但我不确定为什么会这样 - 特别是当相同的设置似乎有效时在其他人的计算机上。

最佳答案

XX:MaxPermSize= 是否有明确的内存设置?此错误意味着 JVM 无法启动,因为提供给它的选项没有为堆空间留出足够的内存。

与 Java 8 的区别可能是因为 Java 8 在 JVM 中不再具有永久代空间,因此 XX:MaxPermSize 选项被忽略。

参见 Could not reserve enough space for object heap作为此类错误的示例。

您可以在 Build, Execution, Deployment > Build Tools > Maven > Runner 下的 IntelliJ 首选项中更改将传递给 maven 命令的内存选项,并在 VM 中设置它们选项 文本框。假设你已经有了 XX:MaxPermSize 设置,你可以尝试这样的事情:

-XX:MaxPermSize=256m -Xmx1024m

它将最大分配池设置为 1024 MB 并为 PermGen 设置最大 256 MB

关于java - 使用 Apache Maven 在 IntelliJ 中构建 Java 项目的内存问题,发生在 Java 7 中,使用 Java 8 构建良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28499813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com