【问题标题】:How to increase memory for embedded jvm for a deployed javafx application?如何为已部署的 javafx 应用程序增加嵌入式 jvm 的内存?
【发布时间】:2026-01-18 16:35:01
【问题描述】:

我正在使用 .fxbuild-script 来构建 JavaFX 应用程序。我使用 Packaging-Format all 来包含它自己的运行时。现在我想知道,如何定义任何运行时参数?

由于我们注意到部署版本中的内存不足问题远多于本地开发版本,因此我们使用 Visual VM 对其进行监控并注意到嵌入式 JVM(默认情况下?)仅配置为使用 256MB内存。如何增加包含的 JVM 的最大可用 RAM?

应用程序在系统上安装后由 .exe 文件启动。

更新: 罗兰的答案是正确的。我刚刚犯了一个错误,我在 Ant 脚本的底部添加了 <fx:platform>-Tag,而不是在适当的 <fx:deploy>-Tag 内,这导致 <fx:platform>-Tag 将被忽略并配置了 JVM在 32 位上使用 256 MB 最大 RAM,在 64 位上使用 1/4 的可用 RAM。

【问题讨论】:

    标签: deployment javafx jvm ram


    【解决方案1】:

    请阅读Packaging Basics,尤其是“5.8.2 自定义JVM设置”一章。

    你需要的摘录:

    <fx:platform javafx="2.1+">
        <fx:jvmarg value="-Xmx400m"/>
        ...
    </fx:platform> 
    

    【讨论】:

    • 谢谢,已经尝试过本章,但不幸的是,将其添加到生成的构建脚本中并没有增加可用内存(至少 Visual VM 和调试日志是这样说的)。此外,我不确定是否真的应该手动向生成的构建脚本添加更改,因为它可能希望让它在之后生成几次。这真的是这样做的预期用途吗?我是否需要在某处引用 fx:pla​​tform 目标,这样它才能工作?