私は最初の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ファイルのために書いてしまった何があります:
(ns game-backend.core
(:require [clojure.java.io])
(:import
(java.security DigestInputStream)
(java.io FileInputStream)
(javax.xml.bind DataTypeConverter)
)
)
とI:
(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マクロ呼び出しでありますtun lein run
次のエラーが表示されます(ある時点でパッケージがダウンロードされました)。Exception in thread "main" java.lang.ClassNotFoundException: javax.xml.bind.DataTypeConverter, compiling:(game_backend/core.clj:1:1)
私は間違った手順を何度も考えていません。それをどうやってやるべきなのかを簡単に教えてください。
あなたは 'レインclean''レインdeps'を試してみましたが、あなたは '[javax.xml.bindの/ JAXB-API "2.2.12" を追加するので] 'をproject.cljファイルに追加しますか? –
私はあなたのコメントを見た後にやったが、役に立たなかった。 –