プロジェクト

全般

プロフィール

Antメモ

逆引き

文字列処理

Windowsのパス文字列をUNIXのパス文字列に変換したい

Windows上のファイルパス(絶対パス)は、ドライブ記号を先頭に、ディレクトリ区切り記号にバックスラッシュ(円マーク)を使って C:\Users\torutk\work\Essen\lib のように表現します。
UNIX上のファイルパス(絶対パス)は、ルートディレクトリを示す記号(スラッシュ)を先頭に、ディレクトリ区切り記号にスラッシュを使って /home/torutk/work/Essen/lib のように表現します。

ここで、Windowsのパス文字列のディレクトリ区切り(だけ)を、バックスラッシュからスラッシュに変換したいとします。

${basedir}/lib の絶対パスを取得しUNIX形式パスに変換しlib.dirプロパティに格納する
  • 書き方1
    <path id="lib" location="${basedir}/lib" />
    <pathconvert property="lib.dir" refid="lib" dirsep="/" />
    
    • ファイルパスを取得するのにpath構造を使い、続くpathconvertで参照するためidを指定しています。
    • pathconvertでディレクトリ区切りをスラッシュに指定し、refidで参照するファイルパスを変換し、プロパティlib.dirに格納しています。
  • 書き方2
    <pathconvert property="lib.dir" dirsep="/">
      <path location="${basedir}/lib" />
    </pathconvert>
    
    • ファイルパスの取得はpathconvertの子要素として記述しています。

${basedir} が、 C:\Users\torutk\work\Essen であった場合、lib.dirプロパティは C:/Users/torutk/work/Essen/lib となります。


taskの追加

外部ライブラリの追加

  1. ANT_HOME/lib の下に置いたJARファイル
  2. ${user.home}/.ant/lib の下に置いたJARファイル
  3. コマンドラインオプション -libで指定したJARファイル
  4. 環境変数CLASSPATHに指定したJARファイル(非推奨)
  5. taskdefのclasspathに指定


約4年前に更新