gpt4 book ai didi

Java - 没有足够的堆空间来解析大型 XML 文件

转载 作者:行者123 更新时间:2023-11-30 11:16:30 28 4
gpt4 key购买 nike

我的 XML 解析器有问题。我需要读取和解析一个 433kb 的 XML 文件,为此,我编写了 2 个 Java 类。一个类使用 SAX,另一个类使用 JDOM2。

为了测试我的类是否可以读取文件,我首先只打印出根节点名称。

问题是什么?堆空间不足。

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:217)
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:277)
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:264)
at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1116)
at xmlparser.version.one.ReadXML.main(ReadXML.java:20)

我已经在stackoverflow和其他平台上阅读了很多想法并使用了它们。

到目前为止,我已确定我的 eclipse 使用 64 位 JRE,我已确保我的环境变量指向 64 位 JRE。我还尝试在 eclipse.ini 中扩展可用于 eclipse 的最大内存。我尝试将类本身的可用内存设置为:-Xms512M -Xmx1024M虽然1024M是不够的。所以我需要将它设置为 2048,而不是 4096,以确保安全。

它仍然不起作用,现在它给了我这个错误:

Error occurred during initialization of VM Could not reserve enough space for object heap

我有一个 64 位系统,i3 双核和 16GB DDR3 内存,目前有 11.2GB 可用。

我没有想法,有人可以帮忙吗?

最佳答案

你可以增加你的堆大小

java -Xmx2g myprogram

enter image description here

关于Java - 没有足够的堆空间来解析大型 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24839990/

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