Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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 Native2ASCI API_Java_Ant - Fatal编程技术网

Java Native2ASCI API

Java Native2ASCI API,java,ant,Java,Ant,我正在尝试使用API执行Native2ASCI任务。我的代码如下所示: public static void main(String[] args) { File sourceDir = new File("c://temp//"); File targetDir = new File("c://temp1//"); Native2Ascii n2a = new Native2Ascii(); n2a.setSrc(sourceDir);

我正在尝试使用API执行Native2ASCI任务。我的代码如下所示:

public static void main(String[] args) {
    File sourceDir = new File("c://temp//");        
    File targetDir = new File("c://temp1//");
    Native2Ascii n2a = new Native2Ascii();
    n2a.setSrc(sourceDir);
    n2a.setDest(targetDir);
    n2a.setEncoding("utf8");
    n2a.execute();
}
不幸的是,我在n2a.execute()行中遇到以下异常:


有人知道问题出在哪里吗?

从Ant源代码中,您可以看到该项目为空:

public synchronized void setupDirectoryScanner(FileScanner ds, Project p) {
    if (isReference()) {
        getRef(p).setupDirectoryScanner(ds, p);
        return;
    }
    if (ds == null) {
        throw new IllegalArgumentException("ds cannot be null");
    }
    ds.setBasedir(dir);

    PatternSet ps = mergePatterns(p);
    p.log(getDataTypeName() + ": Setup scanner in dir " + dir
        + " with " + ps, Project.MSG_DEBUG);
NullPointerException位于
p.log

因此,您可以尝试以下方法,以通过NullPointerException:

Project project = new Project();
n2a.setProject(project);
然后继续下一个问题

1。跟进您的评论

您需要在应用程序运行时执行此文件转换吗?您可以使用ant构建(带任务)或JDK的CLI“离线”转换文件吗

2。将tools.jar添加到类路径


您需要在运行时类路径上从JDK获得
tools.jar
。有了它,我就可以运行它了。

您正在使用的这个可选jar的版本是什么?谢谢@sudocode,它可以工作,但正如您所预测的,它会带来下一个问题。由于这一切看起来相当复杂,可能是一个普遍的问题:我不应该通过API运行任务吗?我需要用unicode表示法替换特殊字符,并认为使用native2ascii任务可能是一个好主意,但可能我在这里错了……看来您现在缺少的只是
tools.jar
Project project = new Project();
n2a.setProject(project);