【问题标题】:resolve java.lang.OutOfMemoryError: Java heap space in NetBeans解决 java.lang.OutOfMemoryError:NetBeans 中的 Java 堆空间
【发布时间】:2016-05-03 21:39:58
【问题描述】:

目前我在 32 位 Windows 10 中使用 NetBeans-8.1。我收到以下错误:

java.lang.OutOfMemoryError: Java 堆空间。

我已经在netbeans.conf 文件中将内存大小更改为-Xmx1024m,添加了环境变量-Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=256m,但仍然出现相同的错误。 NetBeans 在 32 位操作系统上是否存在任何问题?我的系统有 4GB 的 RAM。

【问题讨论】:

  • 也可能是你的代码有问题;介意分享你的一些代码吗?
  • 你什么时候得到这个? -在你启动netbeans之后? - 安装后(编译)? -工作一段时间后?

标签: netbeans


【解决方案1】:

确保您已正确设置 NetBeans 的标志,否则将无法识别:NetBeans 需要 -J 前缀作为 JVM 的参数。 所以你需要使用

-J-Xms1024m -J-Xmx1024m

您还应该知道,Oracle 声明 Windows 32 位只能处理大约 1.4GB - 1.6GB 的堆。见http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#gc_heap_32bit

【讨论】:

  • 感谢您的回复。我试过了。我使用了 -J-Xms1024m -J-Xmx1024m 这个相同的参数。并且还添加了 netbeans_default_options="-J-client -J-Xss2m -J-Xms512m -J-Xmx1024m -J-XX:PermSize=512m -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" 在 netbeans.conf 但仍然同样的问题。我认为它是 OS 32 位和 4GB RAM 的 bcz。如果有其他解决方案,请建议我
  • 您可以尝试进一步增加它,直到 JVM 告诉您它无法为堆保留内存。 (然后它会在启动时失败)-J-Xms1400m -J-Xmx1400m
  • 如果这不能解决您的问题,则很难在 32 位操作系统上修复。 NetBeans 本身使用了这么多内存还是您正在启动的应用程序?在后一种情况下,您必须将 JVM 参数添加到项目/“运行”配置,当然不是 NetBeans。 (这些将没有 -J 前缀。)
  • 超过 2GB (-J-Xmx2048m) 的 netbeans 未启动...它仅未打开
  • 是的,因为 32 位内存限制。因此尝试 1400m ... 并查看我之前关于 NetBeans 或您的应用程序是否运行 OOM 的问题的评论
【解决方案2】:

您应该增加-Xmx 的值,这是JVM 可以为堆分配的最大内存量。有关标志的详细信息,请参阅this answer

例如,您可以使用 -Xmx4G 来允许它在您的系统上使用多达 4GB 的内存。

【讨论】:

    猜你喜欢
    • 2011-11-05
    • 2015-01-23
    • 2020-04-11
    • 2022-01-12
    • 2011-11-25
    • 2012-11-14
    • 2016-07-04
    • 2017-04-22
    • 1970-01-01
    相关资源
    最近更新 更多