Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建ant自定义任务时出现异常InInitializeError_Java_Ant - Fatal编程技术网

Java 创建ant自定义任务时出现异常InInitializeError

Java 创建ant自定义任务时出现异常InInitializeError,java,ant,Java,Ant,我正在ant中创建一个自定义任务,在创建该任务时,我面临异常InInitializer异常。 我已将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

我正在ant中创建一个自定义任务,在创建该任务时,我面临异常InInitializer异常。 我已将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>

老实说,到目前为止,我还没有在java中遇到过这种异常。这里怎么了

我遇到了同样的问题,并根据

只需使用:

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

而不是无参数构造函数

在本例中,为了调试目的,不捕获异常,而是将其更改为捕获Throwable(错误不是异常,否则将失败)。这至少会给你更好的诊断从哪里开始寻找。请张贴整个stacktrace。我想,这可以通过调整ant日志记录级别来实现。
SAXBuilder saxBuilder = new SAXBuilder(new XMLReaderSAX2Factory(false, "org.apache.xerces.parsers.SAXParser"));