Clojure 開発環境を cygwin 上に作る
構築で参考にした記事
Windows でも Clojure がしたい! - Qiita
- JDKインストール
- windows用インストーラダウンロード (leiningen-win-installer)
- インストール
シェルをダウンロード
GitHub - technomancy/leiningen: Automate Clojure projects without setting your hair on fire.
ここにあるシェル(lein script)をダウンロードする。
もし、上記で場所分からなかったら以下をダウンロード。(2016/09/23現在版。古くなっているかも。)
https://raw.githubusercontent.com/technomancy/leiningen/preview/bin/lein
(インストール先)\.lein\bin の中に「lein」って名前で保存。
cygwin 上で起動できない
ここまでやれば起動できるはず!
・・ってことで、下記コマンドを実行してみるが動かない。
$ lein /cygdrive/p/.lein/bin/lein: 行 364: P:\Java\jdk1.8.0_60\bin\java.exe: コマンドが見つかりません
見つかってないコマンドのパスは、シェルの364行目をみると環境変数「LEIN_JAVA_CMD」で指定されたものらしい。
Javaファイルを認識できていない可能性があるので、
$ java -version java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)
・・と、すると lein が java のコマンドを認識できていないってことか。
探してみると、Stack Overflow のページに「普通に自分は動いたよ!」っていう方がいて、
その設定を載せていたので、自分の環境に合わせてコピってみる。
clojure - Getting Leiningen & Cygwin Working - Stack Overflow
JAVA_HOME="/cygdrive/c/Program Files/Java/jdk1.8.0_05/" LEIN_JAVA_CMD="${JAVA_HOME}/bin/java" JAVA_CMD=`cygpath -w "${LEIN_JAVA_CMD}"`
上記を適用すると動いた。どうやら cygwin 流のパスを lein が認識できていないようだ。
.bashrc に追加
・・ってことで、~/.bashrc にラッパースクリプト書いて、起動時にのみ動くようにした。
(各自環境と照らし合わせてjavaのバージョン・パスを変更してください)
LEIN_PATH=`which lein` function lein() { local JAVA_HOME="/cygdrive/c/Program Files/Java/jdk1.8.0_60/" local LEIN_JAVA_CMD="${JAVA_HOME}/bin/java" local JAVA_CMD=`cygpath -w "${LEIN_JAVA_CMD}"` "$LEIN_PATH" $@ }