如何在Java Netbeans平台模块化项目中设置虚拟机选项?

17

我有一个Netbeans平台的模块化项目,不是普通的Java项目。我想设置VM选项来增加内存,但在“属性”对话框中,没有办法为模块化的Netbeans平台项目这么做。这已经花费了我大量的时间,但我仍然没有找到一个好的方法来设置VM参数。

有人知道如何在Netbeans 7中使用Netbeans平台模块化项目时设置VM参数吗?考虑到这给我带来的麻烦,我几乎要放弃使用Netbeans创建模块化应用程序了。

7个回答

12

实际上很简单。只需要修改 project.properties 文件,添加以下一行:

编辑:

run.args.extra=-J-Xmx768m
当然,您可以在那里包含任何其他的JVM选项。
愉快地使用它。

1
当我尝试通过添加你指定的 run.args.extra 选项来运行时,我遇到了这个错误:"忽略未知选项:-Xmx768m"。 - Makoto
抱歉,我错过了-J前缀 :( - JB-
@simgineer,恐怕您需要使用特定于操作系统的启动脚本来实现这一点。 - JB-
1
...或者使用 run.jvmargs= 属性 - Agnius Vasiliauskas
1
run.args.extra仅在开发环境下有效,请参阅http://forums.netbeans.org/topic5312.html。 - iberck
显示剩余3条评论

8
我终于能够根据https://web.archive.org/web/20130830023832/http://activeintelligence.org/blog/archive/gephi-increasing-xmx-memory-in-netbeans/上的信息解决了这个问题。
我的做法是修改project.properties文件,如JB所说,但正确的方法是在参数前添加-J。例如:
run.args.extra=-J-Xms256m -J-Xmx756m

终于解决了!不太清楚为什么要花费三个月的时间才搞定。Netbeans 的文档真的失败了,他们应该从属性菜单中将其编辑而不是让用户在不明确的配置文件中查找!


不好意思,据我所知,这个答案只适用于在NetBeans IDE中基于Ant的项目。 - peterh
听起来好像不知道如何在Maven中完成这个任务?我们有一个Ant项目,需要将其转换为Maven项目。因此,一定要弄清楚Maven的方法。 - simgineer
@simgineer,你找到Maven项目的方法了吗? - coder247

5
我想在这个话题上做出一些贡献。当我开发一个netbeans平台应用程序时,我也遇到了同样的问题。我在我的project.properties文件中添加了run.args.extra=-J-Xmx768m,但它没有起作用!但是当我在我的platform.properties文件中添加run.args.extra=-J-Xmx768m时,它起作用了。但需要注意的是,这只在开发环境下有效。当我将应用程序打包成Windows版本时,问题仍然存在,我的最小堆大小为24m,最大堆大小为64m。后来我发现,如果我在安装目录C:\Program Files\my_project\etc中更新并添加default_options="--branding my_project -J-Xms64m -J-Xmx1G"到my_project.conf中,然后运行我的应用程序并检查IDE日志,我就可以看到变化了。顺便说一句,在netbeans 7.0.1中,即使我右键单击并转到项目属性对话框,我也没有幸运地看到运行节点。让我们期待netbeans梦之队让我们感到幸运吧。

默认选项为"--branding my_project -J-Xms64m -J-Xmx1G",在我的安装目录C:\Program Files\my_project\etc的my_project.conf文件中设置后,运行我的应用程序并检查IDE日志,我现在看不到更改。这个选项对于Windows 7的许可版本不起作用,因为当我从"--branding my_project -J-Xms24m -J-Xmx64m"更改为"--branding my_project -J-Xms64m -J-Xmx1G"时,它会发出警告并且没有更新。这意味着我不能在此路径C:\Program Files\my_project\etc更改。还有其他选项吗? - Jay
在NetBeans IDE中制作安装程序(My App是作为NetBeans平台模块化项目完成的),是否有其他选项可以提供更多的堆内存? - Jay

3
我遇到了这个问题,经过一番挖掘和阅读大量文档后,我得出结论:大部分值都来自于harness中的模板。因此,如果您进入IDE_home/harness/etc/目录,您会找到“app.conf”文件。在distro构建期间,此文件将被重命名为“application name.conf”。编辑该文件,并添加您想要在应用程序中使用的默认值。在我的情况下,我将以下行: default_options="--branding ${branding.token} -J-Xms24m -Xmx64m" 替换为 default_options="--branding ${branding.token} -J-Xms64m -Xmx512m" ,因为我的应用程序需要更多的内存。通过更改模板,我不必触及每个部署并更改VM的内存CLI。希望这可以帮助您!

非常感谢,这正是我一直在寻找的东西。 - Houssam Badri
非常感谢,一直在寻找这个! - digz6666

2

对于Maven项目:

此问题所述,您可以使用nbm-maven-pluginetcConfFile参数:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>nbm-maven-plugin</artifactId>
    <configuration>
        <etcConfFile>src/main/resources/app.conf</etcConfFile>
    </configuration>
</plugin>

更多信息:Geertjan的博客

2

如果您想使用Netbeans设置VM选项而不必担心要编辑哪个文件,那么我们来看看:

Run -> Set project configuration -> VM Options

在相应的文本框中添加选项,例如:-Xms10m。
回答用户1156544的疑问:

enter image description here


我没有看到这个选项,只有默认和发布配置之间的选择。 - user1156544

1

您需要将这些行添加到项目属性文件中。

<target name="build-launchers" depends="suite.build-launchers">
<replace file="build/launcher/etc/${app.name}.conf" token="--branding graphsimulator -J-Xms24m -J-Xmx64m" value="--branding graphsimulator -J-Xms128m -J-Xmx512m"/>
</target>

确切是哪个文件? - digz6666
谢谢,我找到了,是 build.xml。 - digz6666

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接