如何在netbeans中增加java堆大小?

Noo*_*lak 30 java netbeans-7

我试图在netbeans中用java构建一个近110000个单词的词典.我的代码运行正常,但它给出了一个异常,如下所示:

   Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Arrays.java:3209)
at java.lang.String.<init>(String.java:215)
at java.nio.HeapCharBuffer.toString(HeapCharBuffer.java:542)
at java.nio.CharBuffer.toString(CharBuffer.java:1157)
at java.util.regex.Matcher.toMatchResult(Matcher.java:232)
at java.util.Scanner.match(Scanner.java:1270)
at java.util.Scanner.nextLine(Scanner.java:1517)
at lexiconbuild.model.Lexicon.<init>(Lexicon.java:29)
at lexiconbuild.model.LexiconBuild.main(LexiconBuild.java:17)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人可以帮助我增加netbeans中的Java堆空间.

Sar*_*van 51

您可以在项目属性 - >运行 - > VM选项中的NetBeans中进行设置

  1. 右键单击您的项目" 属性 "
  2. 选择" 运行 "类别.
  3. 在" VM选项 "文本框中输入参数(-Xmx512m).

示例:将-Xmx512m放在"VM Options"文本框中,为Java程序提供512Mb的最大堆大小.


Maj*_*jed 35

如果你想为netbeans更改它,你可以从这个文件中更改它:

netbeans.conf 
Run Code Online (Sandbox Code Playgroud)

你会在/ etc下的netbeans文件夹中找到它

并且堆有两个参数

Xms - 堆的初始大小.

Xmx - 最大java堆大小

它使用默认值,你只需要在那里添加它并尝试添加它们.

并且在更改XMX时也不要忘记将这些添加到netbeans_default_options

-J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled
Run Code Online (Sandbox Code Playgroud)

所以netbeans_default_options就是这样的:

netbeans_default_options="-J-client -J-Xss2m -J-Xms512m -J-Xmx1024m -J-XX:PermSize=256m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.zip.disableMemoryMapping=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled"
Run Code Online (Sandbox Code Playgroud)