Netbeans 12.5 增加堆内存

Posted

技术标签:

【中文标题】Netbeans 12.5 增加堆内存【英文标题】:Netbeans 12.5 increase heap memory 【发布时间】:2021-12-08 21:56:29 【问题描述】:

我正在尝试在 netbeans 12.5 上打开一个大型 php 项目。 Netbeans 作为 ubuntu 18.04 上的 snap 模块安装。

每次我遇到堆内存限制异常时,我都会看到 8 个 cpu 核心运行到大约 100%。

有没有办法增加内存限制?我阅读的文档是指以前版本的 netbeans,我无法更改 snap 文件系统下的 netbeans.conf。

【问题讨论】:

这能回答你的问题吗? How to assign more memory to Netbeans? 【参考方案1】:

编辑

就像@skomisa 说的,如果你不能修改netbeans.config 文件,你可以像这样从控制台启动它:- netbeans.exe -J-Xmx50m。 但是每次启动netbeans时都很难做到。因此,请按照以下步骤操作:-

首先转到您拥有 NetBeans 快捷方式的文件夹。(在“开始”菜单文件夹或桌面中)。 然后右键点击快捷方式,在目标部分,添加-J-Xmx50m

看到这张图片。??

原答案

打开您的 netbeans 安装并转到 etc 文件夹。然后打开 netbeans.conf 文件。 然后搜索netbeans_default_options 字符串。如果您想要 50 堆大小,则将 -J-Xmx50m 添加到该字符串。如果它已经存在,则更改它的值。 我的文件是这样的:- (已删除 cmets)?

netbeans_default_options="-J-XX:+UseStringDeduplication -J-Xss2m -J-Xmx50m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dplugin.manager.check.updates=false -J-Dnetbeans.extbrowser.manual_chrome_plugin_install=yes -J--add-opens=java.base/java.net=ALL-UNNAMED -J--add-opens=java.base/java.lang.ref=ALL-UNNAMED -J--add-opens=java.base/java.lang=ALL-UNNAMED -J--add-opens=java.base/java.security=ALL-UNNAMED -J--add-opens=java.base/java.util=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.text=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing=ALL-UNNAMED -J--add-opens=java.desktop/java.awt=ALL-UNNAMED -J--add-opens=java.desktop/java.awt.event=ALL-UNNAMED -J--add-opens=java.prefs/java.util.prefs=ALL-UNNAMED -J--add-opens=jdk.jshell/jdk.jshell=ALL-UNNAMED -J--add-modules=jdk.jshell -J--add-exports=java.desktop/sun.awt=ALL-UNNAMED -J--add-exports=java.desktop/java.awt.peer=ALL-UNNAMED -J--add-exports=java.desktop/com.sun.beans.editors=ALL-UNNAMED -J--add-exports=java.desktop/sun.swing=ALL-UNNAMED -J--add-exports=java.desktop/sun.awt.im=ALL-UNNAMED -J--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED -J--add-exports=java.management/sun.management=ALL-UNNAMED -J--add-exports=java.base/sun.reflect.annotation=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED  -J--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED -J--add-exports=jdk.jdeps/com.sun.tools.classfile=ALL-UNNAMED -J--add-exports=jdk.jdeps/com.sun.tools.javap=ALL-UNNAMED -J--add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.plaf.synth=ALL-UNNAMED -J--add-opens=java.desktop/com.sun.java.swing.plaf.gtk=ALL-UNNAMED -J--add-opens=java.desktop/sun.awt.shell=ALL-UNNAMED -J--add-opens=java.desktop/sun.awt.im=ALL-UNNAMED -J--add-opens=java.base/java.nio=ALL-UNNAMED  -J-XX:+IgnoreUnrecognizedVMOptions"

# Default location of JDK:
# (set by installer or commented out if launcher should decide)
#
# It can be overridden on command line by using --jdkhome <dir>
# Be careful when changing jdkhome.
# There are two NetBeans launchers for Windows (32-bit and 64-bit) and
# installer points to one of those in the NetBeans application shortcut 
# based on the Java version selected at installation time.
#
netbeans_jdkhome="C:\Program Files\Java\jdk-17.0.1"

# Additional module clusters:
# using $path.separator (';' on Windows or ':' on Unix):
#
#netbeans_extraclusters="/absolute/path/to/cluster1:/absolute/path/to/cluster2"

【讨论】:

我无法修改 snap 下的 netbeans.conf 文件 @MatteoRossi 为什么 @MatteoRossi 即使您无法编辑 netbeans.conf,您仍然可以按照 JFan 的建议将值作为启动参数传递给 NetBeans。例如,从命令行提交 netbeans.exe -J-Xmx50m 以在启动 NetBeans 时将 JVM 选项 -Xmx50m 传递给 JVM。 @skomisa 你是对的。 @JFan 虽然您更新的答案原则上很好,但您作为示例提供的具体参数 (-J-Xmx50m) 不幸导致 OutOfMemoryError 这会阻止 NetBeans 启动。 JVM 试图在 50 MB 内存中运行 NetBeans,这显然是不够的。将值调整为 -J-Xmx50g(即最大内存为 50 GB 而不是 50 MB)可以正常工作。

以上是关于Netbeans 12.5 增加堆内存的主要内容,如果未能解决你的问题,请参考以下文章

如何永久增加java堆内存?

Android 堆内存增加

为啥重新启动活动时堆内存会增加?

由于堆大小增加,android中的内存不足错误

Activemq 主题订阅者堆内存泄漏 - 为啥消息在增加?

如何减少 JVM 中的已提交堆内存