开始运行 jar 文件时如何设置 -Xmx?

新手上路,请多包涵

正如我们所知,我们可以在 eclipsewindow->preferences->java->installed jres->edit->default vm arguments 中设置 -Xmx1024M 。但是,当我将这个项目打包成一个可运行的 jar 文件时,如何通过 — -Xmx1024M 运行 jar 时设置 java -jar A.jar

非常感谢!

原文由 Judking 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

尝试 java -Xmx1024m 文件名。

我在 StackOverflow 上找到了这个 Java 选项 -Xmx 代表什么? 并在我启动 Netbeans 时使用它。

像这样使用它

java -Xmx1024m -jar JavaApplication.jar

info: -Xmxn 指定内存分配池的最大大小(以字节为单位)。该值必须是大于 2MB 的 1024 的倍数。附加字母 k 或 K 以指示千字节,或附加字母 m 或 M 以指示兆字节。默认值为 64MB。此值的上限在 Solaris 7 和 Solaris 8 SPARC 平台上约为 4000m,在 Solaris 2.6 和 x86 平台上约为 2000m,减去开销量。

原文由 Davy Cielen 发布,翻译遵循 CC BY-SA 4.0 许可协议

不幸的是,现有的答案在一个关键点上是错误的。

-Xmx 必须传递给Java运行时环境,而不是传递给执行的jar。

错误的:

 java -jar JavaApplication.jar -Xmx1024m

正确的:

 java -Xmx1024m -jar JavaApplication.jar

更具体地说,需要按如下方式使用 java 启动器

java [选项] -jar file.jar [参数]

  • [options] 传递给Java运行环境
  • [arguments] 传递给主函数

-Xmx 参数属于(非标准)JVM 选项,并且–作为一个选项–需要在 -jar 之前(或至少在 file.jar 之前)列出。 JVM 将无法识别 -Xmx 其他答案中建议的传递给 main 函数的参数。

原文由 Philipp Merkle 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题