Ant:尽管指定了类路径且文件看似有效,但仍无法编译

时间:2018-09-08 00:26:54

标签: java ant sling

我的文件(这只是测试此导入的一个最小示例,因为它在其他地方出错了):TestTim_src / TestTim.java

import org.apache.sling.api.resource.ValueMap;

class TestTim {

public static void main(String[] args) {
    System.out.printLn("aaaaap");
}

}

TestTim.xml:

<project>
<target name="compile">
    <javac srcdir="${basedir}/TestTim_src">
        <classpath>
            <fileset dir="${basedir}/unzipped_dependencies/">
                <include name="org/apache/sling/api/resource/ValueMap.class" />
            </fileset>
        </classpath>
    </javac>
</target>
</project>

我这样运行它:

ant -f TestTim.xml -v编译

我收到此错误:

[javac] File to be compiled:
[javac]     C:\XXX\TestTim_src\TestTim.java
[javac] C:\XXX\TestTim_src\TestTim.java:1: error: package org.apache.sling.api.resource does not exist
[javac] import org.apache.sling.api.resource.ValueMap;
[javac]                                     ^

我检查了该文件是否为空,并且包含看似清晰的内容。 Sling是开源的,因此我可以只使用源代码,但是为了避免依赖性问题,我尝试使用编译的文件。

# javap -c unzipped_dependencies/org/apache/sling/api/resource/ValueMap.class

Compiled from "ValueMap.java"
public interface org.apache.sling.api.resource.ValueMap extends java.util.Map<java.lang.String, java.lang.Object> {
public static final org.apache.sling.api.resource.ValueMap EMPTY;

public abstract <T> T get(java.lang.String, java.lang.Class<T>);

public abstract <T> T get(java.lang.String, T);

static {};
  Code:
     0: new           #1                  // class org/apache/sling/api/wrappers/ValueMapDecorator
     3: dup
     4: invokestatic  #2                  // Method java/util/Collections.emptyMap:()Ljava/util/Map;
     7: invokespecial #3                  // Method org/apache/sling/api/wrappers/ValueMapDecorator."<init>":(Ljava/util/Map;)V
    10: putstatic     #4                  // Field EMPTY:Lorg/apache/sling/api/resource/ValueMap;
    13: return
}

我不知道为什么javac没有选择此导入。我在Windows 10上使用cygwin和oracle java。

0 个答案:

没有答案