gpt4 book ai didi

java - 在 JAR 中指定 JVM 堆大小

转载 作者:行者123 更新时间:2023-11-30 05:51:59 24 4
gpt4 key购买 nike

我正在尝试编写一个游戏引擎,但它需要比默认设置更多的内存。我知道如果双击一个 jar,就会使用默认设置。那么我是否可以指定 JAR 在其 list 文件(或其他地方)中需要自定义堆大小?

此外,引擎在它自己的 jar 中,而游戏在另一个 jar 中,引擎作为一个库。如果我在两个 JAR 中指定不同的限制,JVM 会优先考虑哪一个?

最佳答案

manifest specifications 中没有任何属性可以用来控制堆空间。相反,您可以在您的应用程序中编写一个启动器主要方法,该方法使用您的真正主要方法使用 Runtime.exec 之一执行第二个进程。实现。由于您可以访问 java.home系统变量,您可以使用运行您的启动器的 Java 版本来启动您的游戏。

// Fix to use the version appropriate to the OS
String javaPath = System.getProperty("java.home") + "\bin\java.exe";
Runtime.exec("\"" + javaPath + "\" mygame.jar <heap_args>");

使用java.home 获取Java 路径可以避免路径问题。如果您决定更改程序的启动方式,这也将使您能够控制将来的启动。例如,这可以更改为使用 Process这样您还可以等待进程在您的启动器中终止,从而在游戏的 JVM 完全终止时让您控制运行后清理。

关于java - 在 JAR 中指定 JVM 堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com