我正在创建一个自定义任务,在创建时,我正面临ExceptionInInitializer异常。 我已经在我的ant lib目录中放置了jdom-2.0.2.jar,以便自定义任务成功编译。 以下是我的自定义任务代码
import java.io.*;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
public class Demo extends Task {
private String init;
@Override
public void execute() throws BuildException {
if(!init.isEmpty() && init!=null){
display();
}else{
throw new BuildException("Please enter attribute init");
}
}
public void setInit(String init){
this.init=init;
}
public void display(){
System.out.println("init value is "+init);
try {
SAXBuilder saxBuilder = new SAXBuilder();
} catch (Exception e) {
e.printStackTrace();
throw new BuildException("JDOMException caught");
}
}
}
这是我的蚂蚁文件
<project name="XMLUpdate" default="main" basedir=".">
<target name="main" depends="compile,jar,runtask">
</target>
<target name="compile">
<javac srcdir="." destdir="."/>
</target>
<target name="jar">
<jar destfile="./Demo.jar" basedir="." includes="*.class"/>
</target>
<target name="runtask">
<taskdef name="dem" classname="Demo"/>
<dem init="BOM.xml" />
</target>
</project>
我正面临ExceptionInInitializer异常
我认为编译器解析行时出现错误
SAXBuilder saxBuilder = new SAXBuilder();
老实说,到目前为止我还没有在java中遇到过这个异常。这有什么不对?
答案 0 :(得分:1)
我遇到了同样的问题,并根据here
解决了这个问题只需使用:
SAXBuilder saxBuilder = new SAXBuilder(new XMLReaderSAX2Factory(false, "org.apache.xerces.parsers.SAXParser"));
而不是no-arg构造函数。