2017-02-02 15 views
0

Я пытаюсь создать свой первый проект clojure leiningen, но у меня проблема с использованием определенного класса java в моем коде.Импорт java lib в clojure, как он работает?

При кодировании я искал определенную функцию и узнал о 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 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)

Я (m не знаю, сколько шагов я сделал неправильно (все они?). легко понять, как это сделать?

+0

Вы пробовали '' Lein clean' Lein deps' после добавления '[javax.xml.bind/JAXB-апи "2.2.12" ] 'в файл project.clj? –

+0

Я сделал после просмотра вашего комментария, но это не помогло (и ничего нового не было загружено). –

ответ

3

Попробуйте строчную 'T' DatatypeConverter

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

Посмотрите внутри вашего репозитория Maven (.m2 каталог). Там вы сможете найти файл jar. Затем посмотрите на файлы .class в этой банке.

DatatypeConverter.class 

Это один из способов найти, что вы должны использовать строчные буквы «t».

0

Также вы можете добавить несколько классов пакета:

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