私は clojure の初心者で、昨日始めたばかりです。
スタンドアロン アプリを作成する簡単な方法は leiningen を使用することであることがわかりましlein new foo
た。
leiningen で hello world テスト プロジェクトを作成してみました。project.clj に :main および :aot ディレクティブを追加し、core.clj ファイルに :gen-class を追加して試しましlein run
たが、クラス定義が見つからないというエラーが発生します。
Exception in thread "main" java.lang.NoClassDefFoundError:
Caused by: java.lang.ClassNotFoundException:
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
core.clj ファイル
(ns test.core
(:gen-class))
(defn -main [& args] (println "Hello main"))
そして project.clj ファイル
(defproject test "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:main test.core
:aot [test.core]
:dependencies [[org.clojure/clojure "1.2.1"]])
編集:さらにテストした後、プロジェクトをデスクトップにコピーしてもそのまま動作するようです。これは、ラップトップの環境が何らかの形で壊れていることを示していると思いますが、方法がわかりません。
デスクトップの環境は、リポジトリの clojure と AUR の leiningen です。ラップトップでは、clojure は clojure.org から、leining は github から入手できます。