尝试使用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不是一种选择。
我正在运行带有8GB RAM的Windows 7 Enterprise 64位,最近从4gb升级。当我收到此错误时,有足够的可用内存,并且我已在idea.exe.vmoptions
文件中为IntelliJ分配了1024mb。
对于使用相同版本的Java构建同一项目的其他人来说,这个问题似乎不会发生。他们正在使用IntelliJ 13.1.4,他们在idea.exe.vmoptions.
中也只分配了512mb我最初使用的是IntelliJ 13.1.4,并且收到了与我现在收到的类似的错误。
关于可能发生的事情的任何想法?
编辑:对于任何有兴趣的人,我仍然没有想到这个错误。我让我的电脑完全重新成像,问题似乎仍在发生,这让我相信它实际上可能是物理上的东西。我也在考虑可能它与内存泄漏或碎片内存有关,导致malloc在java尝试分配内存时失败,但我不确定为什么会出现这种情况 - 特别是当相同的设置似乎致力于其他人民的工作计算机。
答案 0 :(得分:1)
您是否有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 Options
文本框中。假设你已经设置了XX:MaxPermSize
,你可以尝试这样的事情:
-XX:MaxPermSize=256m -Xmx1024m
将PermGen的最大分配池设置为1024 MB
,最多设置为256 MB
答案 1 :(得分:0)
我尝试使用Run运行应用程序时遇到了同样的错误 - > Debug和"错误:异常构建过程终止"消息就不会消失。然后我尝试使用Run运行应用程序 - >运行并成功运行。回去试图调试应用程序,它开始工作。不确定这对你的情况是否有帮助,但我认为我可以分享我的经验。