ClojureのソースをNetBeansでコンパイルしてみた
Clojureはじめたばかりの初心者です。
ソースを読むのが好きなので、自分でコンパイルしてNetBeans内で動かしてみたいなぁと思いやってみました。
JavaはJava8がインストールされている必要があります。
(ClojureのコンパイルにはJava8以上が必要との事です)
NetBeansは 12.0を使っています。
ちなみにClojureのソースをダウンロードしてきて、mavenを使ったら、簡単にコンパイルできました。しかし、それではNetBeansで、ブレークポイントをかけたり、ステップ実行をしたりできなかった(やり方がわからなかった)ので、別の方法でコンパイルしてみようと思いました。
まず、NetBeansで、File > NewProjectから、Java with Ant > Java Applicationを選択し、作成します。
Clojureの最新ソースを落としてきて、clojure-master/src/jvmの下のJavaソース一式を先ほど作成したプロジェクトのsrcディレクトリにコピーしました。
NetBeansでコンパイルしてみたら、あっさり成功。
これ意外にあっさり動くんじゃね?と思ったら、実行時エラーの連続。
かなりハマりましたが、数時間の格闘で、なんとか動く所までこぎつけました。
clojure-master/src/clojure以下のソースも、同じくNetBeansのsrcに入れる必要があります。
但し、全部の clj を 使っている訳ではなさそうです。
次に clojure-master/resources/clojure/version.properties
これも入れる必要があります。
NetBeansで実行してみると、このpropertiesを読んでいる場所で異常終了してしまいます。
施行錯誤してわかったことは、version={}と書かれている所を1.2.3のように書きかえると
正常に動くようになりました。どうも正規表現を使って、1.2.3を分解して、それぞれに対して文字列を整数型に変換しているみたいです。なので、1.2とか書いてもダメです。
この後が、大変だったのですが、spec.alphaがなんとかいうエラーに悩まされました。
Clojureのソースとはまた別の場所にspec.alphaのソースもあるので、それも追加してみましたが、実行時エラーが発生します。
途方にくれていたところ、spec.alphaをコンパイルしたjarがある事がわかりました。
<groupid>org.clojure</groupid>
<artifactId>spec.alpha</artifactId>
<version>0.3.218</version>
「mavenをjarファイルをダウンロードするだけ」に使い、jarファイルをダウンロードしてきました。
ダウンロードされた spec-alpha-0.3.218.jar をNetBeansのlibに追加してコンパイルしたところ、なんとか、clojureのプロンプトが出て REPL が動く所までできました。
これで勉強環境は出来たので、ブレークポイントかけたり、ステップ実行してソースを読んで動かしてみたいと思います。
Author And Source
この問題について(ClojureのソースをNetBeansでコンパイルしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/masagl07s/items/8ce8216880488c6f37cf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .