t100のプログラミング脱出作戦

自分のプログラミング脳をプログラムにして、いつかプログラミングから脱出してやるぞっ!とか夢見ながら、日々プログラム作っていく 百野 貴博 の日記です!今は、屋号『百蔵。』として、Silverlight・WPFを追跡中です! (2007/09/30)
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告 | トラックバック(-) | コメント(-) top↑
hello clojure 2 (ライブラリをビルドするの巻)
前回作った実行環境で、今回は早速ファイルIOをやってみよう
と思って調べてみたら、書こうと思っていた内容・シナリオのブログを既に書かれている方が!!


書こうと思ったブログは、既に誰かが書いている。(ブログあるある 第二章 43節)

clojureのファイルIO - trotrの日記


Javaのライブラリを使うところから始まって、clojureの関数に置き換えていく解説の流れもナイス!
もうワシ完全に書くことない!


じゃぁ、先日作った実行環境で自分も試してみようっ!(=゜ω゜)ノ


まずは、先日作ったclojure環境で同じディレクトリにある README.txt を表示させてみましょう。

先ほどのブログを参考にさせて頂きつつ、一行でやってみます。


と、思ったら、、、?!


C:\clojure>java -cp clojure.jar clojure.main -e "(use '[clojure.contrib.duck-streams])(doseq [line (read-lines \"readme.txt\")] (println line))"

Exception in thread "main" java.io.FileNotFoundException: Could not locate cloju
re/contrib/duck_streams__init.class or clojure/contrib/duck_streams.clj on class
path: (NO_SOURCE_FILE:0)
...


あ、あら??
clojure/contrib/duck_streams が見つからな??


なんとっ!
clojure/contrib ライブラリは、標準では含まれてないんですね!!

さ、早速サイトからとってきましょう。


contrib ライブラリへのリンクは、clojure サイト右上にある「Contrib Libraries」リンクから辿れます。


contrib とは、clojure の発展の為に、Rich Hickey によって作成され、その後もボランティアによってメンテナンスされ続けているライブラリのようです。
寄贈されたということで、contributions library という意味なのかな?


clojure/contrib ライブラリは、Antを使ってビルドする必要があります。

まずは、Antをインストールしましょう。
Ant ダウンロードはこちら。

この時は、最新版は apache-ant-1.8.1-bin.zip でした。

zip を適当なディレクトリに解凍して、bin ディレクトリにパスを通せば完了です。


次に、contrib の github ページから最新のソースコードをダウンロードします。


この時は、1.1.0 の zip をダウンロードしました。(RCがリストの上に来てますが、無い方が新しいです)

richhickey-clojure-contrib-1.1.0-0-gd132c5f.zip でした。名前長いっ


今回は、前回作った c:\clojure フォルダの下にZipを解凍しました。
c:\clojure\richhickey-clojure-contrib-d132c5f フォルダがある感じになっています。


コマンドプロンプトで、このフォルダに移動しましょう。
一つ上の c:\clojure に clojure.jar があるはずですので、下記コマンドでビルドします。


C:\clojure\richhickey-clojure-contrib-d132c5f>ant -Dclojure.jar=..\clojure.jar

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\li
b\tools.jar
Buildfile: C:\clojure\richhickey-clojure-contrib-d132c5f\build.xml

...

BUILD SUCCESSFUL
Total time: 8 seconds



ビルドが終わると、clojure-contrib.jar と clojure-contrib-slim.jar の二つが出来ています。

clojure-contrib-slim.jar は、いくつかライブラリが除外されているようですが
何が足りないのか、ちょっとまだ調べられていません。

完成した、clojure-contrib.jar を一つ上のディレクトリに移動します。
clojure.jar と同じディレクトリにある状態です。


これで、必要なライブラリがそろったハズ、、、

では、再び先ほどのコードを実行してみましょう。

C:\clojure>java -cp clojure.jar;clojure-contrib.jar clojure.main -e "(use '[clojure.contrib.duck-streams])(doseq [line (read-lines \"readme.txt\")] (println line))"




ズバッとでたーーー!(゚∀゚)


ワンラインでシェルスクリプトっぽく cloure を使いたいんだけど、use 文が長いっ!なんとかならんのかこれっ!


続きはまた今度!!(*´д`*)

テーマ: プログラミング - ジャンル: コンピュータ













管理者にだけ表示を許可する


トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。