Xi on Cygwinの設定

最終更新日:2003.08.24


目次


概要

Windows版JREの上で動作するXiを、できるだけCygwinから違和感なく動かす設定をメモする。

一番上に戻る


インストール

一番上に戻る


設定

  1. /usr/local/BaykitXi/bin/にパスを通す。
  2. そのままではxi(UNIX-shell用)よりxi.exe(Windows用)が優先して呼ばれてしまうので、xi.exeをxi.win32.exeとでも改名する。
  3. 引数のパスをWindowsパスに変換するため、シェルスクリプトxiをいじる。 121行目以降の
    if $isCygwin ; then
      classpath=`cygpath --path --windows "$classpath"`
    fi
    
    の部分を、次のように変更する。
    if $isCygwin ; then
      classpath=`cygpath --path --windows "$classpath"`
      param=`/etc/args_to_win.sh $*`
    fi
    
  4. bxi 1.2以降では、plug-inの自動ロードに対応しているが、そのときのロードパスがjspawn.dirパラメータに依存しているらしい。そのため、command生成部を書き換えないと、cygwinパスとwindowsパスの違いによりうまく動かない。129行目の
    command="exec java $javaOptions -classpath $classpath \
    -Djspawn.dir=${jspawnDir} -Djspawn.name=${jspawnName} $mainClass $*"
    
    の部分を次のように書き換える。
    if $isCygwin ; then
        command="exec java $javaOptions -classpath $classpath \
        -Djspawn.dir=`cygpath -ws ${jspawnDir}` \
        -Djspawn.name=${jspawnName} $mainClass $param"
    else
        command="exec java $javaOptions -classpath $classpath \
        -Djspawn.dir=${jspawnDir} -Djspawn.name=${jspawnName} \
        $mainClass $*"
    fi
    

なお、上記の中で呼び出している /etc/args_to_win.sh は、私があちこちで使っているスクリプト。オプション文字列以外をcygpathに掛けるというもの。


修正済みスクリプト

以下に、修正済みの xi および、その中で呼ばれている args_to_win.sh をおいておく。

xi

オリジナルのスクリプトxiは、横浜BaykitBXiの一部として、Apacheライセンス1.1の派生であるBaykit Public Licenseの下で配布されています。私が修正した xi に関しては、同ライセンスに従うことおよび、私の著作権表示も削除しないことを求めます。

args_to_win.sh

args_to_win.shについては、(そんな大したものでもないので)私の意図としては別段の利用制限をするつもりはありませんが、責任や利用可能な範囲を明確化するためにとりあえずMITライセンスを適用しておきます。

一番上に戻る


© 2003 ゆうき