6

我正在使用 Eclipse 运行 java 程序类,当我运行它时出现此错误

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

然后我从“属性”>“运行”>“虚拟机选项”更改了虚拟机,然后再次运行该程序,出现新错误,

Error occurred during initialization of VM
Incompatible initial and maximum heap sizes specified

我正在尝试在我的程序中应用斯坦福图书馆,不知道如何解决这个错误。

4

3 回答 3

7

要更改 Eclipse 的 VM,您可以从 Windows> Preferences> Java> Installed JREs 更改 MV 的数量,从那里选择 JRE 并单击编辑,然后在 Default VM Arguments: to -Xmx1024M or any other amount of memory 中写入。 ..

于 2012-02-28T09:04:36.997 回答
2

VM 初始化期间发生错误。指定的初始和最大堆大小不兼容

这可能意味着您同时提供了 -Xms 和 -Xmx 选项,并且 -Xms(初始堆大小)值大于 -Xmx(最大堆大小)值。


netbeans 提供仅从 Properties > run > VM options 更改 -Xms

我不是 NetBeans 用户。但是,对使用 NetBeans 5.0手册的简短搜索表明这是不正确的:

设置 JVM 参数

您可以在项目属性对话框中为项目指定 JVM 参数。打开 Project Properties 对话框并单击 Categories 窗格中的 Run,然后在 VM Options 字段中键入以空格分隔的 JVM 参数列表。

换句话说,您可以设置JVM 支持的任何JVM 选项。


这是我更改的字符串 -Xms512m

(最后他告诉我们!!)

添加 -Xmx512m 为好。

作为记录,常见的 JVM 选项(例如 -Xmx 和 -Xms)在java命令的手册页中有清楚的记录。你应该仔细阅读它。

于 2012-02-27T04:35:38.090 回答
0

要扩大 VM 堆大小,请使用 -Xmx 选项,这可以解决错误。但这似乎是您的编码问题。也许代码在创建新对象的死循环中,或者在您的代码中创建了一个非常大的对象,所以我建议您先检查代码。

于 2012-02-27T04:51:04.513 回答