java - 无法分配超过 1397mb 的 JVM 堆

标签 java jvm command-line-arguments jvm-arguments

<分区>

如果我尝试使用 -Xmx1397m 命令行参数运行超过 1397mb 的 Java,它无法初始化。这是为什么?

即:

  • "java path\java.exe"-Xmx1397m -> 工作

  • java path\java.exe"-Xmx1398m ->崩溃

机器几乎有 100GB 未使用的内存,我正在运行 32 位 java

最佳答案

这是 Windows 上 32 位 java 的一个已知问题,由于地址空间碎片问题,您无法获得预期的 3 GB 堆。 HotSpot JVM 的堆需要一个连续地址 block ,一些永久映射到用户空间的共享 DLL 正在碎片化空间。

关于java - 无法分配超过 1397mb 的 JVM 堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15526571/

相关文章:

java - 将非柱状文本文件转换为柱状 CSV/Excel

Java飞行记录器分析摘要提取

java - 将 JVM 绑定(bind)到默认 IP 之外的 IP

java - 命令行参数导致 "main"线程中出现异常

java - 如何将用户输入从文本字段添加到数组中?

java - String.valueOf() 返回空字符串而不是 null

java - 将 Web 应用程序移植到 Tomcat : javax. naming.NameNotFoundException:

java - 如何使用 Powershell 编辑 Tomcat 选项?

使用任何命令行参数进行 exec 调用时出现 Java IOException

python - 和奇怪的命令行界面来解析参数