我非常接近能夠做到這一點。我選擇了JDatePicker以瞭解需要什麼。步驟:從clojure使用java第三方庫的步驟
1) git clone https://github.com/JDatePicker/JDatePicker
2) cd JDatePicker
3) mvn package
然後安裝localrepo不知道如果有一個更簡單的方法,但這似乎是方式由他人在互聯網上指出。
4) vi ~/.lein/profiles.clj
5) {:user {:plugins [[lein-localrepo "0.5.3"]]}}
裏面JDatePicker目錄所在的.jar文件的位置,使用localrepo給jdatepicker的座標,這樣雷音項目可以使用它。我使用雷音版本:
[email protected] ~/Documents/clojure/jdatepickertest $ lein version
Leiningen 2.5.0 on Java 1.7.0_72 Java HotSpot(TM) 64-Bit Server VM
[email protected] ~/Documents/clojure/jdatepickertest $
6) lein localrepo install jdatepicker-2.0.0-SNAPSHOT.jar org/jdatepicker 2.0.0
創建一個新的Clojure項目,看看我是否可以訪問它
7) lein new jdatepickertest
8) cd jdatepickertest
修改project.clj文件,並添加[組織/ jdatepicker「2.0.0」]到依賴關係部分
9)
(defproject jdatepickertest "0.1.0-SNAPSHOT" :description
"FIXME: write description" :url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies
[
[org.clojure/clojure "1.6.0"]
[org/jdatepicker "2.0.0"]
])
沒有這回沒有那麼假設一切順利
一個雷音DEPS 10推出jdatepickertest目錄內REPL
11) lein repl
現在,我嘗試使用jdatepicker從Clojure的,但我似乎無法訪問它?
12)
nREPL server started on port 43286 on host 127.0.0.1 - nrepl://127.0.0.1:43286
REPL-y 0.3.5, nREPL 0.2.6
Clojure 1.6.0
Java HotSpot(TM) 64-Bit Server VM 1.7.0_72-b14
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Source: (source function-name-here)
Javadoc: (javadoc java-object-or-class-here)
Exit: Control+D or (exit) or (quit)
Results: Stored in vars *1, *2, *3, an exception in *e
user=> (clojure-version)
"1.6.0"
user=> (require '[jdatepicker :as datepicker])
FileNotFoundException Could not locate jdatepicker__init.class or jdatepicker.clj on classpath: clojure.lang.RT.load (RT.java:443)
user=> (require '[org.jdatepicker :as datepicker])
FileNotFoundException Could not locate org/jdatepicker__init.class or org/jdatepicker.clj on classpath: clojure.lang.RT.load (RT.java:443)
user=>
快速問題,我如何在面板內實例化JDatePicker並顯示它? – Ivan 2014-12-04 21:08:44
[clojure.org]的指南(http://clojure.org/java_interop)非常好。查看你想使用的構造函數,並從Clojure中調用它。 '(JDatePicker。)' –
noisesmith
2014-12-04 21:11:13
請看這個問題http://stackoverflow.com/questions/27304476/simple-java-interop-from-clojure – Ivan 2014-12-04 21:30:55