【问题标题】:using google java api library in clojure在 clojure 中使用 google java api 库
【发布时间】:2014-06-06 13:45:20
【问题描述】:
  1. 我正在尝试通过 Google 要求一个 java 库并从 Clojure 调用它。
  2. 我根据groupId、artifactId和version在我的project.clj中添加了com.google.api-client/google-api-client
  3. lein deps 不返回任何输出 - 似乎它成功设置了所有依赖项。
  4. 我检查了类路径,它包含 google-api-client.jar (System/getProperty "java.class.path").
  5. user=>(require 'com.google.api-client/google-api-client) 返回FileNotFoundException Could not locate google_api_client__init.class or google_api_client.clj on classpath: clojure.lang.RT.load (RT.java:443)

这是我的project.clj

(defproject textsync "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.5.1"]
                 [com.google.api-client/google-api-client "1.18.0-rc"]

我做错了什么?

【问题讨论】:

    标签: java clojure


    【解决方案1】:

    您必须将一个 java 类导入到 clojure 命名空间中,例如,

    (import 'org.apache.commons.lang.StringUtils) ;replace the java file with what you want
    

    require 仅用于导入其他 clojure 名称空间。将 java 类导入 clojure 名称空间时,必须使用 import。

    【讨论】:

    • (import 'com.google.api-client/google-api-client),(import com.google.api-client.google-api-client),(import 'com.google.api-client) 不起作用 (ClassNotFoundException)。
    • (import '[com.google.api-client])。这并不能解决所有问题。您可能还需要userequire,但我还没有使用这个库。
    • @wie :您不能导入整个包。您需要导入您正在使用的所有类。
    【解决方案2】:

    您很可能只需要导入所需的类。例如,您可能想尝试:

    (import '[com.google.api.client.googleapis GoogleUtils]
            '[com.google.api.client.googleapis.services AbstractGoogleClient
                                                        AbstractGoogleClient$Builder])
    

    请注意:

    1. 课程拼写为com.google.api.client.googleapis.GoogleUtils(没有破折号)

    2. Java 嵌套类的 Clojure 语法使用 $

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多