NetBeans内存不足错误

6

我对Netbeans中的这种错误很陌生。 我一直在使用我的Netbeans 8.0.2进行Java J2SE编程。 我通常对长度为300-500的字符串进行模糊搜索。 我正在使用Levenshtein和Jaro Winkler算法来查找字符串之间的距离。 大约需要1500个迭代才能计算出字符串之间的距离! 问题是我的Netbeans经常会出现以下错误:

Low on Memory, Error Unable to Compile

我在网上搜索了一些关于如何解决这个错误的方法,并发现可以通过添加方式来增加堆大小。

-Xms3G

这个命令的意思是为堆分配3GB空间!但在编译过程和在NetBeans中运行项目时,错误仍然出现。

有人能帮我解决这个错误吗?因为当它发生时,我会得到以下错误信息:

 java.lang.noClassDefError

请帮我摆脱这个错误,我对这个错误是新手!


-Xms3G 这是增加虚拟机的内存大小。你的电脑有这么大的内存吗? - Ye Win
我的笔记本电脑有8GB内存,Core i7 4500u处理器。 - Java Nerd
3个回答

13

通过使用 -Xms3G ,意味着你的JVM将以 Xms 的内存量启动,这是初始内存分配。

但是,相反地使用 -Xmx3G ,它将能够使用最大的内存分配 Xmx

1. Netbeans堆大小

如果您想增加NetbeansIDE堆大小,则编辑以下文件。(从您的Netbeans安装目录中的etc文件夹)

C:\Program Files\NetBeans\etc\netbeans.conf

找到以下代码行并添加-J-Xmx3G,你可以指定任何大小,我已经提供了3G作为示例。

找到下面的一行代码并加入-J-Xmx3G,大小可以自己指定,这里提供了3G作为示例。

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-Xmx3G -J-XX:PermSize=32m ......."

2. 通过在Netbeans中增加堆大小来运行项目的项目设置

右键单击项目->属性->运行->VM选项->自定义按钮。 您会找到许多VM选项,请为Xmx指定一个值。

3. 通过提供VM选项来增加堆大小以运行jar文件,而不是在Netbeans中运行。

从命令行运行或编写脚本。

java -Xmx3G -jar filename.jar

希望这能有所帮助。


这意味着如果我将其制作为.jar文件,它会对.jar文件和NetBeans都有效吗? - Java Nerd
看起来你的netbeans_default_options示例中有错误,因为你说你提供了3G作为示例,但是在你的示例中并不存在3G或其M等效物。 - Nikolaii99
谢谢,我已经修改了。 - pmverma

3
我的问题的最简单答案是一个诀窍来识别。我在我的工作目录中有许多netbeans项目。假设我的目录D:\NetBeans\WorkSpace包含大约300个项目!我所做的是简化目录,将旧项目移动到新目录中,只剩下几个项目在我的netbeans工作空间中。将一些项目移动到新目录后,错误消息消失了。问题在于当netbeans启动时,它会将项目加载到内存中,如果您将许多项目加载到加载目录中,它将导致内存泄漏!

0

为NetBeans分配更多内存。

  1. 进入您的NetBeans主目录。
  2. 在etc目录中打开netbeans.conf文件。//在:Resource/NetBeans/etc下
  3. 在文件中找到netbeans_default_options参数。
  4. 将-J-Xms和-J-XX设置为较大的值。例如:-J-Xms256,-J-XX256

希望能帮到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接