如何从类目录中添加所有类的类路径?
我有以下财产:
class.dirs = lib1dir,lib2dir,lib3dir
这些目录下有类 是否可以将这些目录下的所有类添加到classpath中?
类似的东西:
<classpath>
<dirset dir="${root.dir}" includes="${class.dirs}/**/*.class"/>
</classpath>
或
<classpath>
<pathelement location="${class.dirs}" />
</classpath>
但是这个例子当然不起作用。
答案 0 :(得分:14)
您可以设置路径以包含特定目录中的所有.class文件:
<path id="mypath">
<fileset dir="${root.dir}">
<include name="lib1dir/**/*.class lib2dir/**/*.class lib3dir/**/*.class"/>
</fileset>
</path>
但是,如果要将此路径用作类路径,则只需引用根文件夹,否则当包名称转换为目录时,您将获得ClassNotFoundError
:
<path id="build.classpath">
<dirset dir="${root.dir}">
<include name="lib1dir lib2dir lib3dir"/>
</dirset>
</path>
然后在使用时通过其id引用路径(例如,对于类路径):
<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" />