【问题标题】:importing java lib in clojure, how does it work?在clojure中导入java lib,它是如何工作的?
【发布时间】:2017-02-02 18:44:31
【问题描述】:

我正在尝试构建我的第一个 clojure leiningen 项目,但在我的代码中使用特定的 java 类时遇到问题。

在编码时,我正在寻找一个特定的功能,并发现了 DatatypeConverter (http://docs.oracle.com/javase/7/docs/api/javax/xml/bind/DatatypeConverter.html)。 然后我必须弄清楚如何导入库。我对 Maven 一无所知,但我最终有点(受过教育?)猜测我应该在那里寻找图书馆 https://search.maven.org/

这就是我最终为我的 project.clj 文件编写的内容:

(defproject game-backend "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"}
  :main game-backend.core
  :dependencies [
                 [org.clojure/clojure "1.8.0"]
                 [javax.xml.bind/jaxb-api "2.2.12"]
                 ])

这是我在 core.clj 文件中的 ns 宏调用:

(ns game-backend.core
  (:require [clojure.java.io])
  (:import
   (java.security DigestInputStream)
   (java.io FileInputStream)
   (javax.xml.bind DataTypeConverter)
  )
)

当我 tun lein run 我收到以下错误(在某个时间点下载了一个包):Exception in thread "main" java.lang.ClassNotFoundException: javax.xml.bind.DataTypeConverter, compiling:(game_backend/core.clj:1:1)

我(我不知道我做错了多少步骤(全部?)。你能告诉我应该怎么做吗?

【问题讨论】:

  • 自从您将[javax.xml.bind/jaxb-api "2.2.12"] 添加到您的project.clj 文件后,您是否尝试过lein clean lein deps
  • 我在看到你的评论后做了,但没有帮助(并且没有下载任何新内容)。

标签: clojure leiningen


【解决方案1】:

试试小写的“t”DatatypeConverter

(ns game-backend.core
  (:require [clojure.java.io])
  (:import
   (java.security DigestInputStream)
   (java.io FileInputStream)
   (javax.xml.bind DatatypeConverter)
  )
)

【讨论】:

    【解决方案2】:

    查看您的 maven 存储库(.m2 目录)。您将能够在那里找到 jar 文件。然后查看那个 jar 中的 .class 文件。

    DatatypeConverter.class
    

    这是发现您应该使用小写“t”的一种方法。

    【讨论】:

      【解决方案3】:

      您还可以添加多个类的包:

      (:import (java.io File Bits BufferedInputStream))
      

      【讨论】:

        猜你喜欢
        • 2012-09-19
        • 1970-01-01
        • 1970-01-01
        • 2012-02-28
        • 2021-12-03
        • 2012-08-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多