java - Native2Ascii API

标签 java ant

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

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() 行中遇到以下异常:

java.lang.NullPointerException
    at org.apache.tools.ant.types.AbstractFileSet.setupDirectoryScanner(AbstractFileSet.java:529)
    at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:492)
    at org.apache.tools.ant.taskdefs.MatchingTask.getDirectoryScanner(MatchingTask.java:192)
    at org.apache.tools.ant.taskdefs.optional.Native2Ascii.execute(Native2Ascii.java:239)
    at Native2AsciiTest.main(Native2AsciiTest.java:27)
Exception in thread "main" 

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

最佳答案

从Ant源码中可以看到Project为null:

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 构建(带有 native2ascii 任务),或者 JDK 的 native2ascii CLI“离线”转换文件?

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

您需要在运行时类路径上有 JDK 中的 tools.jar。这样,我就可以运行它了。

关于java - Native2Ascii API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11102794/

相关文章:

java - 如何从父类(super class)中实例化子类

ant - Ivy 代理设置

c++ - NANT 修改 C++ 项目的程序集版本

java - 是否可以为每个带有附加信息的 jar 文件使用 spring 配置 XML 文件?

java - Hibernate 不在 JBoss 7.1.1 的 H2 中保存数据

java - 如何在 Velocity 中将 HTML 注入(inject)到 springMessageText 的 {0} 中?

xml - 使用 ANT 替换整个 XML 标签

android - 无法使用 buildozer android new release 构建未签名的发布 APK

ant - hudson 依赖项

java - 使用 HtmlUnit 进行抓取时出现 OutOfMemoryError