我有一个Java程序,我使用Apache xerces.jar
来解析XML文件。我遇到了一个错误,这里的错误是:
javac -classpath ":." MyParser.java
MyParser.java:4: error: package org.apache.xerces.parsers does not exist
import org.apache.xerces.parsers.*;
^
我尝试了以下各种选项:
javac -classpath ":." MyParser.java
javac -cp ":." MyParser.java
javac -classpath ":xerces.jar" MyParser.java
javac -cp ":xerces.jar" MyParser.java
javac -classpath :. MyParser.java
javac -cp :. MyParser.java
javac -classpath :xerces.jar MyParser.java
javac -cp :xerces.jar MyParser.java
导致问题的主要代码是:
import org.apache.xerces.parsers.*;
我能够完美地编译它并在Netbeans IDE中运行它,但我无法使用命令行来实现它。我使用命令行的主要原因是,使用Netbeans,我无法解析250 MB的文件。有没有人知道如何增加堆栈/堆限制?
当我将XML文件减少到10 KB以下时,我能够解析它,但在当前场景中,我在堆栈跟踪中收到此错误。
org.xml.sax.SAXParseException; systemId: file:/C:/Users/user/Downloads/Project/Test/Parser/posts2.xml; lineNumber: 1; columnNumber: 1; The markup in the document preceding the root element must be well-formed.
at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1318)
at org.apache.xerces.framework.XMLDocumentScanner.reportFatalXMLError(XMLDocumentScanner.java:616)
at org.apache.xerces.framework.XMLDocumentScanner$XMLDeclDispatcher.dispatch(XMLDocumentScanner.java:798)
at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1208)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1247)
at MyParser.main(MyParser.java:21)
BUILD SUCCESSFUL (total time: 0 seconds)
我相信这是因为,整个文件没有被读取或正在读取截断的文件。请帮忙。
答案 0 :(得分:0)
看起来问题与UTF-8 BOM有关。使用体面的十六进制编辑器并删除UTF-8 BOM的前三个字符。
EF BB B0