8

ディレクトリのセットからすべてのクラスをクラスパスに追加する方法は?

私は次のプロパティを持っています:

class.dirs=lib1dir,lib2dir,lib3dir

これらのディレクトリの下にクラスがあります。
これらのディレクトリの下にあるすべてのクラスをクラスパスに追加することはできますか?

何かのようなもの:

<classpath>
   <dirset dir="${root.dir}" includes="${class.dirs}/**/*.class"/>
</classpath>

また

<classpath>
   <pathelement location="${class.dirs}" />
</classpath>

しかし、もちろん、この例は機能しません。

4

1 に答える 1

14

特定のディレクトリからすべての .class ファイルを含めるようにパスを設定できます。

<path id="mypath"> 
  <fileset dir="${root.dir}">
    <include name="lib1dir/**/*.class lib2dir/**/*.class lib3dir/**/*.class"/>
  </fileset>
</path> 

ただし、このパスをクラスパスとして使用する場合は、ルート フォルダーのみを参照する必要があります。そうしないとClassNotFoundError、パッケージ名がディレクトリに変換されるときに sが取得されます。

<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" />
于 2012-05-22T15:06:35.257 に答える