我正在尝试在netbeans中用java构建一个近110000个单词的词典。我的代码运行正常,但它给出了一个Exception,如下所示:
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
我想知道是否有人可以帮助我增加netbeans中的java堆空间。
答案 0 :(得分:49)
您可以在项目属性中的NetBeans中设置它 - &gt;运行 - &gt; VM选项
示例:在“VM Options”文本框中放置-Xmx512m可为Java程序提供512Mb的最大堆大小。
答案 1 :(得分:32)
如果您想为netbeans更改它,您可以从此文件中更改它:
netbeans.conf
您可以在/ etc
下的netbeans文件夹中找到它并且堆有两个参数
Xms - 堆的初始大小。
Xmx - 最大java堆大小
它使用默认值,您只需将其添加到那里并尝试添加它们。
并且在更改XMX时也不要忘记将这些添加到netbeans_default_options
-J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled
所以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"
答案 2 :(得分:3)
在运行配置中,您应该设置Java VM选项-Xmx512m
或其他将Java VM的最大大小限制为512M的选项。您始终可以尝试其他值。您只受操作系统使用的物理内存限制。