【问题标题】:JAVA invalid maximum heap size. The specified size exceeds the maximum representable sizeJAVA 最大堆大小无效。指定大小超过最大可表示大小
【发布时间】:2015-07-01 22:07:01
【问题描述】:

我必须运行此命令将代码修复为 xml 文件:

java -Xmx5G -cp .:jsoup-1.8.2.jar CheckSyntax test.xml > test2.xml

但它给了我这个错误:

Invalid maximum heap size: -Xmx5G
The specified size exceeds the maximum representable size.

我怎样才能让它工作?

【问题讨论】:

  • 可能是因为 Java 在您的机器上使用 32 位指针?
  • 您使用的是 32 位版本的 Java。要允许超过 ~2GB 的最大堆大小,您需要使用 64 位版本。
  • 你试过-d64吗?
  • 奇怪的事情:java -64 '这个java实例不支持64位JVM'
  • 这意味着您使用的不是 64 位版本。检查java -version

标签: java


【解决方案1】:

如果您的 JVM 是 32 位,则不能使用开关 -d64

【讨论】:

    【解决方案2】:
    java -Xmx2G -cp .:jsoup-1.8.2.jar CheckSyntax test.xml > test2.xml
    

    32 位 java 不能使用 heapsize > 2G

    【讨论】:

      【解决方案3】:

      这里是获取 Java 64 位以允许更大堆大小的链接。只需选择“Windows 脱机(64 位)”选项。 https://www.java.com/en/download/manual.jsp

      【讨论】:

      • 添加其他答案的快速摘要可能是个好主意,以解释为什么发布者会从 64 位版本的 Java 中受益,因此将来查看此问题的任何其他人都会得到完整的通过查看您的答案来了解如何解决他们的问题。
      猜你喜欢
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多