【发布时间】:2015-11-18 06:08:25
【问题描述】:
我在具有 32 GB RAM 的 PC 上使用 Windows 7,并且刚刚接受了最新的 Java 8 更新 (60)。在更新之前,我曾经能够在命令窗口中处理需要使用数 GB 内存的文件。现在,我明白了
java.lang.OutOfMemoryError: Java heap space
运行的应用程序需要的内存比我以前舒适地使用的少得多。
当我运行 NetBeans 时,我曾经能够通过以下方式将项目设置为使用 1GB 内存 R-click:Properties:Run and put
-Xms1g
在
VM Options
窗口。
现在,当我这样做并尝试运行程序时,我得到了
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Error occurred during initialization of VM
Could not reserve enough space for object heap
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
我在使用时没有收到该错误
-Xms900m
相反。因此,Java 以某种方式减少了我可以使用的堆内存量。
我去了开始:控制面板:Java (32-bit):Java:View
然后放
-Xms4g
下
Runtime Parameters
但我仍然遇到同样的错误。
【问题讨论】:
-
你为什么使用
-Xms?这只会设置 minimum 堆,而不是 maximum。如果你需要给你的Java程序更多的堆,你应该使用-Xmx4g -
我转到开始:控制面板:Java(32 位):Java:查看并将 -Xmx4g 放在“运行时参数”下。如果我在“VM 选项”下使用 -Xmx1g 或 -Xms1g,我仍然会收到与 Netbeans 相同的错误消息。谢谢,
-
如果您使用 32 位,您将自己限制为大约 1.3 GB 的虚拟内存。这是您正在模拟的 Windows XP 的限制。
-
我刚刚用 64 位替换了 32 位 java。我在 Netbeans 上仍然有同样的问题,但命令窗口中的问题至少没有那么严重。我可以运行之前堆内存不足的程序。我正在尝试运行具有更多内存要求的程序。我需要等待大约半小时才能看到它是否有效(除非它在那之前内存不足)。谢谢,
-
如果我没记错的话,控制面板中的设置只会影响Java Applet,而不是从命令行启动的Java程序。要更改 NetBeans 项目的内存,您需要更改 NetBeans 中的设置:docs.oracle.com/cd/E50453_01/doc.80/e50452/…
标签: java windows memory netbeans-7