2015-02-08 42 views
1

我嘗試在lein項目中導入兩個org.apache.lucene罐子並獲得ClassNotFoundException在clojure中導入lucene罐子

這是我project.clj文件:

(defproject clj_processing_tweets "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.apache.lucene/lucene-core "4.10.3"] 
       [org.apache.lucene/lucene-analyzers-common "4.10.3"]] 
    :profiles {:dev {:dependencies [[speclj "3.1.0"]]}} 
    :plugins [[speclj "3.1.0"]] 
    :test-paths ["spec"]) 

運行lein deps後,我送core.clj到雷音REPL和我

CompilerException java.lang.ClassNotFoundException: org.apache.lucene.analysis.*, compiling:(clj_processing_tweets/core. 
clj:1:36) 

這裏是我的core.clj文件:

(ns clj_processing_tweets.core 
    (:import [org.apache.lucene.analysis *])) 

感謝幫助。

回答

3

因爲clojure不允許在Java導入中指定通配符,所以需要分別導入每個要使用的類。

看到這個答案,以一個更一般的問題: https://stackoverflow.com/a/1213628/66722

因此,舉例來說:

(ns clj_processing_tweets.core 
    (:import [org.apache.lucene.analysis Analyzer Tokenizer]))