2011-05-28 5 views
1

Eclipseを使用してJavaを開発するので、Eclipse Java Projectフォルダがいっぱいのフォルダがあります。/binフォルダは各フォルダにありますので、Cygwinからプロジェクトを実行するには、クラスパスを "E:/ programming/java/workspace/SomeProject/bin"に設定する必要があります。私のフォルダには〜40個のプロジェクトがあるので、CLASSPATHにパスを追加するスクリプトを作成したいと思う。私のスクリプトはCLASSPATHへのパスを追加するようですが、Javaを実行しようとするとクラスが見つかりません。私の.bashrcにここに私のスクリプトです:CygwinからCLASSPATHを設定する

JAVAWORKSPACE="/cygdrive/e/programming/java/workspace/*" 
BIN="/bin;" 
for f in $JAVAWORKSPACE 
do 
    if [ -d $f ] ; then 
     export CLASSPATH="$f$BIN$CLASSPATH" 
    fi 
done 

私はCygwinを起動して、$ CLASSPATHをエコーすると、すべてのディレクトリが現れますが、Javaでは、クラスを見つけることができません。私もJAVAWORKSPACE="E:\programming\java\workspace\*を試しましたが、CLASSPATHに何も追加されませんでした。私はWindowsの設定を通過し、手動で "E:/プログラミング/ java/workspace/MyProject/bin"をCLASSPATHに入力すると、コマンドラインJavaはクラスを見つけるのに問題はありません。これはどうしたの?私はそれがスクリプトに問題があるのか​​、CLASSPATHがUNIXスタイルのパスを好まないのかどうかは分かりません。 Windowsパスを追加する必要がある場合は、スクリプトを変更してこれを行うのを手伝ってください。ありがとう!

答えて

2

今私はCygwinをセットアップしていませんが、数年前にこの問題に遭遇しました。 JavaはCygwinのパス名について何も知らず、bashは単一のバックスラッシュをエスケープ文字として扱い、java(c)に転送する前にそれを取り除きます。実行した場合

echo E:\programming\java\workspace\* 

期待通りではなく、E:programmingjavaworkspace *が出力されます。キーは、

E:\\programming\\java\\workspace\\* 

またはより良いように、エスケープ文字をエスケープthisようcygpathを使用するかのいずれかです。

関連する問題