ant でのクラスパスとか。

cygwin から ant して怒られて,Meadow 上の shell から ant して怒られて,
クラスパス設定して怒られて。
怒られてばかりの人生を謳歌している whitypig です。

解決編

どんなエラーか忘れたけど,cygpath で parsing error とか言われていた気がする。
それをもとにしらべたら,bin/ant がシェルスクリプトなことを知り,
中身を見て,おおよそでコメントアウトしたらオッケー牧場。
つまり,bin/ant の 259行目から262行目をコメントアウト


diff は以下。

--- c:/opt/Java/apache-ant-1.7.1/bin/ant.~1~	Fri Jun 27 05:03:56 2008
+++ c:/opt/Java/apache-ant-1.7.1/bin/ant	Sat Aug  8 00:40:00 2009
@@ -256,10 +256,10 @@
   JAVA_HOME=`cygpath --$format "$JAVA_HOME"`
   LCP_TEMP=`cygpath --path --unix "$LOCALCLASSPATH"`
   LOCALCLASSPATH=`cygpath --path --$format "$LCP_TEMP"`
-  if [ -n "$CLASSPATH" ] ; then
-    CP_TEMP=`cygpath --path --unix "$CLASSPATH"`
-    CLASSPATH=`cygpath --path --$format "$CP_TEMP"`
-  fi
+#   if [ -n "$CLASSPATH" ] ; then
+#     CP_TEMP=`cygpath --path --unix "$CLASSPATH"`
+#     CLASSPATH=`cygpath --path --$format "$CP_TEMP"`
+#   fi
   CYGHOME=`cygpath --$format "$HOME"`
 fi


おまけで,swt関連のクラスパスを設定するスクリプトを用意
しました。なんか環境変数に書いておくのは微妙な気持ちになったので。
ま,たぶん,Windows 形式でクラスパスを書いているので,
上記の ant でのエラーが出たんだと思うけんども,気にしないサー。

#!/bin/sh

libdir=/cygdrive/c/opt/Java/lib

for j in $libdir/*.jar
do
    p=$p\;`cygpath -aw $j`
done
export CLASSPATH=$CLASSPATH\;$p
echo $CLASSPATH

これで,Meadow 上のシェルからでも,Poderosa からでも,
% source set_swt_classpath.sh
で,オッケー牧場。