在 JAR 中指定 JVM 堆大小

2024-01-06

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

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


中没有任何属性清单规格 http://docs.oracle.com/javase/1.4.2/docs/guide/jar/jar.html#JAR%20Manifest您可以使用它来控制堆空间。相反,您可以在应用程序中编写一个启动器主方法,该方法使用您的真正主方法之一执行第二个进程Runtime.exec http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html#exec%28java.lang.String%29实施。既然您可以访问java.home http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html系统变量,您可以使用运行启动器的 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>");

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JAR 中指定 JVM 堆大小 的相关文章

随机推荐

  • 选角真的有什么作用吗?

    考虑以下片段 char x 100 double p x 正如预期的那样 这会产生以下警告 f c 3 15 warning initialization of double from incompatible pointer type c
  • 如何使用 Installshield 2008 创建 VSTO (COM) Addin for Excel 的 InstallShield 安装程序

    我已在 Visual Studio Tools for Office VSTO for Excel 2010 中创建了一个 com 插件 并且我想为最终用户创建一个 exe 安装文件 我已经用谷歌搜索了这个问题 但我所能找到的只是使用 Vi
  • JDBC:通过单个数据库调用返回多个结果集 - 不适用于 Oracle

    This http msdn microsoft com en us library ms378758 aspx帖子展示了在单个 JDBC 调用中执行多个查询 针对 SQL Server 数据库 并用分号分隔它们 当我尝试对 Oracle
  • 按名称访问图像资源并将其分配给 PictureBox

    我有这个清单 List
  • 通过对行进行分组来转换数据框

    d1 lt data frame Gender c M M M M F F F F Age c 15 38 17 35 26 24 20 26 如果可能的话 我想把它改成这样 Gender Age M 15 38 17 35 F 26 24
  • 找不到 com/razorpay/Y_$B$$5 的外部类 com/razorpay/Y_$B$

    我正在实施RazorPay安卓结帐 我跟着Razorpay Android sdk 文档 https docs razorpay com v1 page android运行应用程序 gradle 时 构建失败并出现此错误 我也在 Razor
  • 如何确认 href 标签中链接的导航? [复制]

    这个问题在这里已经有答案了 我在管理面板中使用简单的链接 但如果用户意外单击链接进行用户删除 应该会弹出一个确认窗口来避免这种情况 正如您所知 href 标签可能与 javascript 不完全兼容 所以 我使用了 onclick 的spa
  • 如何缓存 Spark 数据框并在另一个脚本中引用它

    是否可以缓存数据帧 然后在另一个脚本中引用 查询 它 我的目标如下 在脚本 1 中 创建一个数据框 df 运行脚本1并缓存df 脚本2中 查询df中的数据 无法使用标准 Spark 二进制文件 火花DataFrame与具体的SQLConte
  • 获取 python 函数中使用/调用的函数列表

    是否有任何工具 库可以列出在另一个方法 函数中调用的方法 函数的列表 例如 如果该工具或库针对以下方法运行 def calculate a int b int operator Operator if operator Operator a
  • C++中的using和include有什么区别?

    我知道 include 用于类 using 用于一些内置的东西 比如命名空间 std 当你包含某些东西时 你可以创建对象并使用它们 但是当你 使用 某些东西时 你可以使用某种内置函数 但是我应该如何创建我自己可以 使用 的 库 呢 简单的说
  • Heroku Symfony 3.2 推送被拒绝,无法编译 PHP 应用程序

    我在 Heroku 上部署 symfony Web 应用程序时遇到了麻烦 而以前它工作得很好 可能出什么问题了 这是构建日志 http pastebin com DXZH110S http pastebin com DXZH110S 这是日
  • WCF服务向客户端发送数据

    是否可以在没有请求的情况下将数据从 WCF 服务发送到客户端 例如 在 WCF 中 我有循环发送数据的函数 我怎样才能实现该功能 这可以通过以下方式实现全复式合同 https msdn microsoft com en us library
  • codecov.io 与 Bitbucket 管道结合时出现错误

    我确实在 Bitbucket 上设置了一个私人存储库来托管 PHP 项目 对于这个项目 我还使用了管道集成 这是我的管道 yaml 文件的内容 image php 7 1 4 pipelines default step script in
  • python 与 c/fortran 的比较

    我编写了以下程序来比较 python 与 c fortran 的速度 为了获取程序使用的时间 我使用了 time 命令 一切 程序计算 x 的平方根x yy z z 其中 x y z 是浮点数 我使用了平方根 因为它是最耗时的部分之一 科学
  • C++:a 的 b 次幂模 k [重复]

    这个问题在这里已经有答案了 a b 模 k问题 编写一个程序来计算模 k 的 b 次幂 例如 如果要求您计算 2 6 mod 7 2 的 6 次方是 64 因此 64 模 7 是 1 输入规格您将得到 3 个整数 a b 和 k 其中 b
  • heroku db:push 显示无效的数据库 url

    我正在尝试使用以下方法将数据推送到 heroku 应用程序 heroku db push 但它吐出了这个错误 root ubuntu lappy rails soft heroku db push Invalid database url
  • MongoDB。 BadValue:使用副本集启用授权时需要 security.keyFile

    我正在尝试配置副本集Mongo in a Docker容器 我已将副本集添加到mongod conf file replication replSetName rs0 但在启动过程中我遇到了下一个异常 BadValue security k
  • 使用 ADO.NET 管理数据库连接

    我们有一个基于 ADO NET 构建的应用程序 我们遵循一些简单的最佳实践 使我们能够利用连接池 例如 使用数据库的代码块可能如下所示 using DbConnection dbConnection GetDatabaseConnectio
  • scrollOverflow 在 fullPage.js 中不起作用

    我最近开始在一个项目中使用 fullPage js 但我不知道如何让溢出滚动起作用 我的页面中的最后一个 部分 很长 因此需要垂直滚动 这是我里面的代码 tags
  • 在 JAR 中指定 JVM 堆大小

    我正在尝试编写一个游戏引擎 但它需要比默认设置更多的内存 我知道如果您双击一个 jar 则会使用默认设置 那么我是否可以指定 JAR 在其清单文件 或其他地方 中需要自定义堆大小 此外 引擎位于它自己的 jar 中 游戏位于另一个 jar