2017-09-30 14 views
4

最近、私は最近、clojureでプログラミングを学ぶことに興味を持ったようになりました。 javaのjdkの最新バージョンをインストールしてleiningenスクリプトをダウンロードした後、後者のインストール手順、具体的にはhttp:/www.lispcast.com/clojure-ubuntuにあるインストール手順に従った。javaクラスが見つかりませんでしたので、leiningenは実行できません。

lein versionを実行して関連するjarファイルをダウンロードした後、クラスが見つからないというエラーでプログラムが終了します。次のように問題のエラーが読み取ります

スレッドで例外java.base/java.lang.Class.forName0(ネイティブメソッド)での "メイン" java.lang.ExceptionInInitializerError

java.baseで/ (RT.java:2168)
at clojure.lang.RT.classForName(RT.java:2177)
at clojure.lang.RT.loadClassForName(RT.java:2196)
at clojure.lang.RT.load(RT.java:443)
at clojure.lang.RT.load(RT.java:419) 0 clojure.core $負荷の$ fn__5677.invokeで (core.clj:5893)clojure.core $ load.invokeStaticで
(core.clj:5892)
clojure.core $ load.doInvoke(core.cljで:5876)clojure.lang.RestFn.invoke(RestFn.java:408)clojure.core__init.loadで
(不明なソース)clojure.core__initで
(不明なソース)java.baseで

/java.lang.Class.forName0(ネイティブメソッド)
at java.base/java.lang.Class.forName(Class.java:375)
at clojure.lang.RT.classForName(RT.java:2168)
at clojure.lan g.RT.classForName(RT.java:2177)clojure.lang.RT.loadClassForNameで
(RT.java:2196)clojure.lang.RT.loadで
(RT.java:443)Clojureので
.lang.RT.load(RT.java:419)clojure.lang.RT.doInit(RT.java:461)clojure.lang.RTで

。(RT.java:331)
Clojureので(main.java:20)
原因:java.lang.ClassNotFoundException:java/sql/Timestamp
at java.base/java.lang.Class.forName0(ネイティブメソッド)
at java.base /java.lang.Class.forName(Class.java:375)
at clojure。 Clojureので
:lang.RT.classForName(RT.java:2168)
clojure.lang.RT.classForNameNonLoadingで (RT.java:2181)
clojure.instant $ loading__5569__auto ____ 6869.invokeで(9 instant.clj) .instant__init.load(不明なソース)clojure.instant__initで
。(不明なソース)
... 23もっと

私のjava 9 JDKが/usr/lib/jvm/java-9-oracleに私のJAVA_HOME変数セットで、/usr/lib/jvm/java-9-oracle/bin/javaにインストールされているが、私も/usr/lib/jvm/java-9-oracle/binを試してみました。これが重要なのであれば、xubuntu 16.04.3を実行しています。私はxubuntuにバンドルされているopenjdkにデフォルトのjava jdkを設定しようとしましたが、これも無駄でした。

脇見として、cursiveプラグインをインストールした後にREPL をintellijで実行しようとしたために問題が発生しましたが、これはうまくいきませんでした。私はそれが私が前もってライニングをインストールしていなかったからかもしれないと推測しました(私はIDEと筆記体がこれを束ねると思っていました)。しかし、intellijとclojureが正常に動作するために必要な情報は、情報の多くがむしろ「散らばっている」ものであり、途中で何かを逃したのかどうかわからないため、実際に情報がわかりません。

いずれにせよ、私はすべてのことをうまく動かすのに苦労しています。おそらく、この種の問題にはまだ精通していないので、Linuxディストリビューションまた、クロージャーには全く馴染みがない。私が何かを明らかにしていない場合、私は謝罪しますが、そうであることが明らかになってからは、何かが明白であるに過ぎないという理由があります。

すべてのご提案をいただければ幸いです。

答えて

1

Java 9の新しい概念である "modules"に起因する問題のようです:Clojureはjava.sql.Timestampにアクセスできることを期待していますが、そうではありません。私はJava開発やClojure開発についていないので、それがあなたの問題だとは言い切れませんが、それは私のように見えます。以前のJDKを試してください。

+0

これは本当に問題でした。 oracle-java8-installerを実行した後、すべてがスムーズに進みました。早速のお返事ありがとうございます。私はそれがバージョン9でうまくやっていたものだと思っていましたが、残念です。 – ianarchist

+0

Java 9の関連する問題の一覧はこちら:https://github.com/tobias/clojure-java-9/issues。そして、ここにleinigen特有の問題があります:https://github.com/technomancy/leiningen/issues/2149 –

関連する問題