2009-06-01 5 views
2

Linux環境で実行するJavaアプリケーションの起動スクリプトをテストするためにCygwinを使用しようとしています。Cygwinを使用してシェルスクリプトを実行し、javaコマンドに適切なパスセパレータを使用する方法はありますか?

私はboothclasspathまたはClasspathを指定しています。OS固有のパスセパレータを使用する必要があります。 Windowsの場合は ":"、Linuxの場合は ":"です。これは、Javaが依然としてネイティブのWindowsアプリケーションであり、ネイティブOSパスセパレータ(Cygwin List Path Seperator)を使用しているために発生します。

シェルスクリプトでは、 )、適切なパスセパレータを指定します。

私は次のように設定しようとしている

:Windowsでは

MAVEN_OPTS="-Xbootclasspath/a:test/resources:live/resources" 

それはする必要があります: MAVEN_OPTS = " - Xbootclasspath /:テスト/リソース;生きる/資源" が見つかり

答えて

5

ここでの答え:あなたは例えば、Cygwinを実行している場合Detect OS from a bash script (Using $OSTYPE)

PATHSEP=":" 
if [[ $OSTYPE == "cygwin" ]] ; then 
PATHSEP=";" 
fi 

MAVEN_OPTS="-Xbootclasspath/a:test/resources${PATHSEP}live/resources" 
+0

さらに良い場合は、エコー "$ {OSTYPE}" | egrep -iq '^(cygwin | msys)' ' – smac89

4

あなたはuname(1)を使用することができますテストする:

if uname | grep -iq cygwin; then 
    # use ; for path separator 
else 
    # use : for path separator 
fi 
関連する問題