无法编译和运行基于xerces的Java程序

时间:2015-10-19 23:14:13

标签: java netbeans xml-parsing xerces

我有一个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)

我相信这是因为,整个文件没有被读取或正在读取截断的文件。请帮忙。

1 个答案:

答案 0 :(得分:0)

看起来问题与UTF-8 BOM有关。使用体面的十六进制编辑器并删除UTF-8 BOM的前三个字符。

EF BB B0