“线程中的异常”;“主要”;java.lang.OutOfMemoryError:java堆空间:解析dblp.xml

“线程中的异常”;“主要”;java.lang.OutOfMemoryError:java堆空间:解析dblp.xml,java,xml,macos,out-of-memory,Java,Xml,Macos,Out Of Memory,我使用的是mac10.5.8和java1.5。我试图解析一个大文件:dblp.xml。我遵循此链接中的说明,以便使用SAX:>解析文件。我应该使用Mac终端运行代码。以下是命令: javac Parser.java java -mx900M -DentityExpansionLimit=2500000 Parser dblp.xml > out.txt 不幸的是,我遇到了以下例外情况: 线程“main”java.lang.OutOfMemoryError中的异常:java堆空间 在co

我使用的是
mac10.5.8
java1.5
。我试图解析一个大文件:
dblp.xml
。我遵循此链接中的说明,以便使用SAX:>解析文件。我应该使用Mac终端运行代码。以下是命令:

javac Parser.java

java -mx900M -DentityExpansionLimit=2500000 Parser dblp.xml > out.txt
不幸的是,我遇到了以下例外情况:

线程“main”java.lang.OutOfMemoryError中的异常:java堆空间 在com.sun.org.apache.xerces.internal.impl.XMLEntityManager$ScannedEntity(XMLEntityManager.java:2437) 在com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:1117) 位于com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startenty(XMLEntityManager.java:905) 位于com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startenty(XMLEntityManager.java:843) 位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanentyreference(XMLDocumentFragmentScannerImpl.java:1334) 在com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1756) 位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) 位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) 位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) 位于com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) 位于com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) 位于javax.xml.parsers.SAXParser.parse(SAXParser.java:375) 位于javax.xml.parsers.SAXParser.parse(SAXParser.java:311) at解析器。(Parser.java:152) 位于Parser.main(Parser.java:179) mohammed al-refais macbook:src mohammedal refai$export JVM_ARGS=“-Xmx1024m-XX:MaxPermSize=256m” mohammed al-refais macbook:src mohammedal refai$java-mx900M-DentityExpansionLimit=2500000解析器dblp.xml>out.txt 线程“main”java.lang.OutOfMemoryError中出现异常:java堆空间 在com.sun.org.apache.xerces.internal.impl.XMLEntityManager$ScannedEntity(XMLEntityManager.java:2437) 在com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:1117) 位于com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startenty(XMLEntityManager.java:905) 位于com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startenty(XMLEntityManager.java:843) 位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanentyreference(XMLDocumentFragmentScannerImpl.java:1334) 在com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1756) 位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) 位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) 位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) 位于com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) 位于com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) 位于javax.xml.parsers.SAXParser.parse(SAXParser.java:375) 位于javax.xml.parsers.SAXParser.parse(SAXParser.java:311) at解析器。(Parser.java:152) 位于Parser.main(Parser.java:179)


尽管提供的链接中的说明表明它可以用Java1.5进行解析,但我仍然有这个例外。谁能帮我解决这个问题。非常感谢您的帮助

您没有为jvm分配足够的内存

我猜您的参数设置错误,因为它是
-Xmx900M
,而不是
-mx900M
。“X”代表非标准选项


我更改了参数。不幸的是,我仍然有相同的异常。高于提供的最大堆空间-Xmx2gIt仍在运行。我会让你知道结果的。谢谢你的帮助。非常感谢你,安德烈亚斯。我用最大堆空间解析了文件-Xmx2g。谢谢您的帮助。您能告诉我如何增加堆大小以及如何使用命令-Xmx2g吗?