Я ржав на этом, но я слышал о других людях с похожими проблемами.
Я думаю, полезно помнить, что путь к классу, который вы указываете, указывает на корень дерева классов, а имена пакетов в итоге создают подкаталоги в этом дереве. Неловко заявлено, но я надеюсь, вы поняли идею. Таким образом, я думаю, вам нужно выполнить некоторые виды гимнастики с созданием каталогов, соответствующих иерархии "app.first" -> "/ app / first".
Извините, это так близко, как я пришел к разумному и полезному ответу. Надеюсь, это поможет вам.
EDIT:
Основная директива информатики: она работает, только если вы делаете все правильно! Я потратил на это почти 10 минут, но в итоге все получилось.
Вот что мне нужно было сделать, чтобы ваша программа компилировалась:
- создал каталог
app
, а внутри него first.clj
с вашим кодом.
- проверяется на
*compile-path*
, выполняя (pr *compile-path)
в Clojure. Там сказано "классы".
- создал второй каталог
classes
параллельно app
.
- в оболочке, сделал
export CLASSPATH=.:./classes
- в Clojure, сделал
(compile 'app.first)
... и я нашел кучу файлов классов в classes
. JARring те должны быть несложно.
Мне показалось очень полезным запустить (doc compile)
, потому что это напомнило мне о необходимости иметь каталог для удовлетворения требования *compile-path*
.