【问题标题】:How can I set VM options in a Java Netbeans Platform Modular Project?如何在 Java Netbeans 平台模块化项目中设置 VM 选项?
【发布时间】:2011-07-11 07:59:55
【问题描述】:

我有一个 Netbeans 平台模块化项目,而不是常规 Java 项目。我想设置 VM 选项以增加内存,但在“属性”对话框下,没有办法为模块化 Netbeans 平台项目执行此操作。这花费了我大量的时间,我仍然没有找到设置 VM args 的好方法。

在 Netbeans 7 中编译和运行程序时,有谁知道如何使用 Netbeans 平台模块化项目设置 VM 参数?考虑到麻烦的数量,我几乎准备放弃 Netbeans 来创建模块化应用程序。

【问题讨论】:

    标签: java memory netbeans jvm platform


    【解决方案1】:

    事实上,这很容易。只需修改 project.properties 文件以包含以下行:

    已编辑:

    run.args.extra=-J-Xmx768m
    

    当然,您可以在其中包含任何其他 JVM 选项。

    享受吧。

    【讨论】:

    • 当我通过添加您指定的 run.args.extra 选项来尝试此操作时,我收到此错误:“忽略未知选项:-Xmx768m”
    • 对不起,错过了 -J 前缀 :(
    • 如果你有多个参数要传递给 jvm 怎么办?每个条目之间有多行或空格?
    • ...或使用run.jvmargs= 属性
    • run.args.extra 仅适用于开发,请参阅forums.netbeans.org/topic5312.html
    【解决方案2】:

    我终于能够根据https://web.archive.org/web/20130830023832/http://activeintelligence.org/blog/archive/gephi-increasing-xmx-memory-in-netbeans/的信息解决这个问题

    正如 JB 所说,我所做的是修改 project.properties 文件,但正确的做法是在 args 之前添加 -J。例如,

    run.args.extra=-J-Xms256m -J-Xmx756m
    

    做到了!不知道为什么花了 3 个月的时间才弄清楚这一点。 Netbeans 文档绝对是失败的。他们真的应该从属性菜单中使这个可编辑,而不是让用户通过不起眼的配置文件进行搜索!

    【讨论】:

    • 不,答案——据我所知——仅适用于 NetBeans IDE 中基于 Ant 的项目。
    • 听起来我们如何在 maven 中做到这一点是未知的?我们有一个 ant 项目,需要将其转换为 maven 项目。所以肯定也必须弄清楚 maven 方式。
    • @simgineer 你找到 maven 项目的方法了吗?
    【解决方案3】:

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

    【讨论】:

    • default_options="--branding my_project -J-Xms64m -J-Xmx1G" in my_project.conf 在我的安装目录 C:\Program Files\my_project\etc 然后运行我的应用程序并检查 ide 日志我现在看不到更改。此选项不适用于 Windows 7 的许可证版本。因为当我从“--branding my_project -J-Xms24m -J-Xmx64m”更改为“--branding my_project -J-Xms64m -J”时-Xmx1G",它会发出警告并且不会更新。意味着我不能在这个路径 C:\Program Files\my_project\etc 上更改。所以还有其他选项吗?
    • 在 netbeans IDE 中制作(我的应用程序是作为 netbeans 平台模块化项目完成的)netbeans 平台应用程序的安装程序时提供更多堆内存的任何其他选项。
    【解决方案4】:

    我遇到了这个问题,经过一番挖掘和阅读大量文档后,我能够推断出这些值中的大部分来自于线束中的模板。

    因此,如果您转到 IDE_home/harness/etc/,您将找到“app.conf”文件。该文件在发行版构建期间被重命名,“app.conf”成为您的“应用程序名称.conf”。使用您希望在应用程序中使用的默认值编辑此文件。

    在我的例子中,我替换了以下行: default_options="--branding ${branding.token} -J-Xms24m -Xmx64m" 和 default_options="--branding ${branding.token} -J-Xms64m -Xmx512m" 因为我的应用程序需要更多内存。通过更改模板,我不必触及每个部署并更改 VM 的内存 CLI。

    希望这会有所帮助!

    【讨论】:

    • 非常感谢,我一直在寻找的东西
    • 非常感谢,正在找这个!
    【解决方案5】:

    对于 Maven 项目:

    如本文question所述,可以使用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's Blog

    【讨论】:

      【解决方案6】:

      您必须将这些行添加到您的项目属性文件中。

      <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>
      

      【讨论】:

      • 究竟是哪个文件?
      • 谢谢,我找到了,build.xml。
      【解决方案7】:

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

      Run -> Set project configuration -> VM Options
      

      在相应的文本框中添加您的选项,例如:-Xms10m

      回答user1156544疑问:

      【讨论】:

      • 我没有看到这个选项,只是在默认和发布配置文件之间进行选择
      猜你喜欢
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      • 2010-10-28
      • 2015-02-20
      相关资源
      最近更新 更多