我有一个使用Netbeans 7.0.1开发的java程序,用于解析和保存大型CSV文件。由于CSV文件的大小,我需要增加JVM的堆大小。在7.0.1中,我使用Netbeans中Project ->Properties -> VM选项下的-Xmx4096m规范将堆大小设置为在我的系统上使用8 4GB中的4 4GB。它在7.0.1中工作得很好。
现在,我正尝试在Netbeans 7.1中运行它,并从Netbeans的输出中获得以下内容
Could not create the Java virtual machine.
Invalid maximum heap size: -Xmx4096m
The specified size exceeds the maximum representable size.
Java Result: 1当我收到这个错误时,我没有改变Netbeans中的默认设置。
我想大概在7.1中,他们已经“锁定”了netbeans.config文件中的堆大小,所以我去了那里。
首先,我尝试了一下:
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-Xmx4906m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.zip.disableMemoryMapping=true"这会在Netbeans的闪屏上弹出一个无法创建JVM的窗口。
然后我试了一下:
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=4096m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.zip.disableMemoryMapping=true"Netbeans似乎更喜欢这样,因为加载栏将一直到“完成模块加载”。但之后它就会挂在闪屏上。我让它在那里挂了5分钟,然后杀了它。
这对我来说不是一个阻碍,因为我仍然可以在7.0.1下运行得很好,但是我想知道是否有人有解决这个问题的方法。这看起来应该是一个简单的修复,但我只是忽略了一些东西?
耽误您时间,实在对不起。
发布于 2012-04-21 02:10:54
看起来您使用32位java.exe安装了NetBeans,请在C:\Program Files (x86)\NetBeans 7.1\etc\或C:\Program Files\NetBeans 7.1\etc\中编辑您的netbeans.conf,并确保显示(将jdk1.7.0_03替换为您实际打算使用的版本):
...
# Default location of JDK, can be overridden by using --jdkhome <dir>:
netbeans_jdkhome="C:\Program Files\Java\jdk1.7.0_03"
...而不是
...
# Default location of JDK, can be overridden by using --jdkhome <dir>:
netbeans_jdkhome="C:\Program Files (x86)\Java\jdk1.7.0_03"
...请注意,Windows中的“( JVM )”表示32位,或者直接编辑您的项目并选择64位x86。您可能需要将64位JVM添加到Tools->Java Platforms。当然,如果你不使用Windows,细节会有所不同,但这仍然是一个32位与64位的问题。
当有人想要使用较新的JVM,但是他们意外地安装了32位版本而不是64位版本时,通常会出现这种情况。另请注意:您可以将项目配置为在64位JVM中运行/调试,而NetBeans本身在32位JVM中运行,因此您实际上不必修改netbeans.conf来使您的项目能够分配4 4GB。
总而言之:
https://stackoverflow.com/questions/10250083
复制相似问题