在clojure中导入java库,它是如何工作的?

在clojure中导入java库,它是如何工作的?,clojure,leiningen,Clojure,Leiningen,我正试图构建我的第一个clojure leiningen项目,但在代码中使用特定的java类时遇到了一个问题 在编写代码时,我正在寻找一个特定的函数性,并了解了DatatypeConverter()。 然后我必须考虑如何导入库。我对Maven一点也不了解,但我最终还是有点(受过教育?)猜测我应该在那里寻找图书馆 因此,我最终为project.clj文件编写了以下内容: (defproject game-backend "0.1.0-SNAPSHOT" :description "FIXME:

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

在编写代码时,我正在寻找一个特定的函数性,并了解了DatatypeConverter()。 然后我必须考虑如何导入库。我对Maven一点也不了解,但我最终还是有点(受过教育?)猜测我应该在那里寻找图书馆

因此,我最终为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"]
                 ])
(ns game-backend.core
  (:require [clojure.java.io])
  (:import
   (java.security DigestInputStream)
   (java.io FileInputStream)
   (javax.xml.bind DataTypeConverter)
  )
)
下面是我在core.clj文件中的ns宏调用:

(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"]
                 ])
(ns game-backend.core
  (:require [clojure.java.io])
  (:import
   (java.security DigestInputStream)
   (java.io FileInputStream)
   (javax.xml.bind DataTypeConverter)
  )
)
当我运行
lein时,我得到了以下错误(某个时间点下载了一个包):
线程“main”java.lang.ClassNotFoundException中的异常:javax.xml.bind.DataTypeConverter,编译:(game\u backend/core.clj:1:1)

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

试试小写的“t”

试试小写的“t”


查看maven存储库(.m2目录)中的jar文件,然后查看该jar中的.class文件

DatatypeConverter.class

这是找到应该使用小写字母“t”的一种方法。

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

DatatypeConverter.class

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

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

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

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

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

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