0

ant でカスタム タスクを作成していますが、その作成中に ExceptionInInitializer 例外に直面しています。カスタム タスクが正常にコンパイルされるように、jdom-2.0.2.jar を ant lib ディレクトリに配置しました。以下は私のカスタムタスクコードです

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");
            } 
    }
}

これは私のantファイルです

<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 でこの例外に遭遇したことはありません。ここで何が問題なのですか?

4

1 に答える 1

1

私は同じ問題に遭遇し、ここに従って解決しました

使用するだけです:

SAXBuilder saxBuilder = new SAXBuilder(new XMLReaderSAX2Factory(false, "org.apache.xerces.parsers.SAXParser"));

引数なしのコンストラクターの代わりに。

于 2014-10-21T04:34:22.743 に答える