[英]Using custom Java classes in Clojure REPL
在Eclipse中,使用CCW插件,我想將clojure文件加載到REPL中。 問題是我有一個我自己的java類的import語句,但顯然它不在我的類路徑中。
(ns my-clj-ns
(:import [alg.gen Enumerator]))
我是否需要在Clojure REPL中使用/測試的每個類中制作罐子?
目前,嘗試將我的clj加載到REPL會導致錯誤:“在Clojure REPL中加載文件”未正常完成。 有關更多信息,請參閱日志。 顯示java.lang.NullPointerException
任何幫助將不勝感激。
您可以讓leiningen為您編譯這些,
:javac-options {:destdir "classes/"}
:java-source-path "src/main/java" ; location of Java source
選項或手動編譯它們並將類文件移動到classes /目錄。 無需創建jar。
當你在ccw repl中時,你可以點擊alt-e來查看堆棧跟蹤。 如果你得到一個NullPointerException,我不認為它是一個類路徑問題。
如果你想學習如何做這個,那里有很好的指南。
https://github.com/technomancy/leiningen/blob/master/doc/MIXED_PROJECTS.md
但是在gist中,有一個類似於Java源代碼的項目定義。
(defproject megacorp/superservice "1.0.0-SNAPSHOT"
:description "A Clojure project with a little bit of Java sprinkled here and there"
:source-paths ["src/clojure"]
:java-source-paths ["src/java"])
你的代碼看起來很好。
我懷疑問題出在您的Eclipse Java Build Path上 ,它決定了Eclipse在應用程序的類路徑中包含的內容。
特別是,如果您的Java類位於單獨的項目中,則需要將該項目添加到構建路徑(右鍵單擊項目/屬性/ Java構建路徑/項目)或將其打包為jar。
當您開始擁有更復雜的構建要求時,您可能還想開始查看Maven以便為您處理此類事情。 Maven是一個學習/設置的痛苦,但從長遠來看它是值得的。
Leiningen也是一個很好的工具,但我個人不會因為以下原因使用它:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.