繁体   English   中英

使用Clojure中的Java第三方库的步骤

[英]Steps in using a java third party library from clojure

我非常接近能够做到这一点。 我选择了JDatePicker来查看所需内容。 脚步:

1) git clone https://github.com/JDatePicker/JDatePicker
2) cd JDatePicker
3) mvn package

然后安装了localrepo不知道是否有更简单的方法,但这似乎是Internet上其他人指出的方法。

4) vi  ~/.lein/profiles.clj
5) {:user {:plugins [[lein-localrepo "0.5.3"]]}}

在.jar文件所在的JDatePicker目录中,使用localrepo赋予jdatepicker一个坐标,以便lein项目可以使用它。 我正在使用lein版本:

idf@idf-Satellite-C55t-A ~/Documents/clojure/jdatepickertest $ lein version
Leiningen 2.5.0 on Java 1.7.0_72 Java HotSpot(TM) 64-Bit Server VM
idf@idf-Satellite-C55t-A ~/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文件,并将[org / 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"]
         ] )

莱恩·德普斯(lein deps)没有返回任何东西,所以假设一切顺利

10) lein deps

在jdatepickertest目录中启动了一个repl

11) lein repl

现在,我尝试从clojure使用jdatepicker,但似乎无法访问它?

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=> 

您不需要为此使用lein-localrepo,在项目中指定Maven坐标就足够了。

[org.jdatepicker/jdatepicker "1.3.4"]

require是clojure名称空间。 使用时将在类路径中查找Java类,并且如果您更喜欢使用非限定的类名,则可以使用import

(import org.jdatepicker.JDatePicker)

之后,您可以像其他任何Java库JDatePicker通过互操作继续使用JDatePicker

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM