2002-10-02 (Wed) [長年日記]
▲ Winodws と Unix のコマンドライン解釈の違い
Windows では問題ないが Solaris ではどうしても動作しない Ant の build.xml の調査依頼。原因は単純で以下の部分。
<param name="-noValueClasses" value="" />このように書くとコマンドラインオプションとして Ant は以下のオプションを生成する。
-noValueClasses ''シングルクォートふたつの空の値だ。 これを使って外部プロセスを呼び出すと Shell のコマンドライン解釈の違いに引っかかってしまう。 Windows では空の値を無視するために正常動作してしまうが、Unix 環境によっては '' をひとつの要素として処理し、意図しない動作をしてしまう。値がないコマンドラインオプションは正しく以下のようにすべし。
<param name="-noValueClasses" />