2017-12-22 11 views
6

以前は、clojure.orgで提供されているWindowsインストーラを使用して、さまざまなWindowsマシンにclojureをインストールしました。 Clojure 1.9は数週間出ていますが、Windows用のインストーラや一般的なJavaベースのインストールの兆候は見当たりません。Clojure 1.9 windows install

私はclojure.orgからjarファイルをダウンロードし、

java -jar clojure.1.9.0.jar 

を実行しようとしましたが、それはただのスタックダンプ:

Exception in thread "main" java.lang.ExceptionInInitializerError 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Unknown Source) 
     at clojure.lang.RT.classForName(RT.java:2204) 
     at clojure.lang.RT.classForName(RT.java:2213) 
     at clojure.lang.RT.loadClassForName(RT.java:2232) 
     at clojure.lang.RT.load(RT.java:450) 
     at clojure.lang.RT.load(RT.java:426) 
     at clojure.core$load$fn__6548.invoke(core.clj:6046) 
     at clojure.core$load.invokeStatic(core.clj:6045) 
     at clojure.core$load.doInvoke(core.clj:6029) 
     at clojure.lang.RestFn.invoke(RestFn.java:408) 
     at clojure.core$load_one.invokeStatic(core.clj:5848) 
     at clojure.core$load_one.invoke(core.clj:5843) 
     at clojure.core$load_lib$fn__6493.invoke(core.clj:5888) 
     at clojure.core$load_lib.invokeStatic(core.clj:5887) 
     at clojure.core$load_lib.doInvoke(core.clj:5868) 
     at clojure.lang.RestFn.applyTo(RestFn.java:142) 
     at clojure.core$apply.invokeStatic(core.clj:659) 
     at clojure.core$load_libs.invokeStatic(core.clj:5925) 
     at clojure.core$load_libs.doInvoke(core.clj:5909) 
     at clojure.lang.RestFn.applyTo(RestFn.java:137) 
     at clojure.core$apply.invokeStatic(core.clj:659) 
     at clojure.core$require.invokeStatic(core.clj:5947) 
     at clojure.core.server$loading__6434__auto____8456.invoke(server.clj:9) 
     at clojure.core.server__init.load(Unknown Source) 
     at clojure.core.server__init.<clinit>(Unknown Source) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Unknown Source) 
     at clojure.lang.RT.classForName(RT.java:2204) 
     at clojure.lang.RT.classForName(RT.java:2213) 
     at clojure.lang.RT.loadClassForName(RT.java:2232) 
     at clojure.lang.RT.load(RT.java:450) 
     at clojure.lang.RT.load(RT.java:426) 
     at clojure.core$load$fn__6548.invoke(core.clj:6046) 
     at clojure.core$load.invokeStatic(core.clj:6045) 
     at clojure.core$load.doInvoke(core.clj:6029) 
     at clojure.lang.RestFn.invoke(RestFn.java:408) 
     at clojure.core$load_one.invokeStatic(core.clj:5848) 
     at clojure.core$load_one.invoke(core.clj:5843) 
     at clojure.core$load_lib$fn__6493.invoke(core.clj:5888) 
     at clojure.core$load_lib.invokeStatic(core.clj:5887) 
     at clojure.core$load_lib.doInvoke(core.clj:5868) 
     at clojure.lang.RestFn.applyTo(RestFn.java:142) 
     at clojure.core$apply.invokeStatic(core.clj:659) 
     at clojure.core$load_libs.invokeStatic(core.clj:5925) 
     at clojure.core$load_libs.doInvoke(core.clj:5909) 
     at clojure.lang.RestFn.applyTo(RestFn.java:137) 
     at clojure.core$apply.invokeStatic(core.clj:659) 
     at clojure.core$require.invokeStatic(core.clj:5947) 
     at clojure.core$require.doInvoke(core.clj:5947) 
     at clojure.lang.RestFn.invoke(RestFn.java:408) 
     at clojure.lang.Var.invoke(Var.java:381) 
     at clojure.lang.RT.doInit(RT.java:487) 
     at clojure.lang.RT.<clinit>(RT.java:336) 
     at clojure.main.<clinit>(main.java:20) 
Caused by: java.io.FileNotFoundException: Could not locate clojure/spec/alpha__init.class or clojure/spec/alpha.clj on classpath. 
     at clojure.lang.RT.load(RT.java:463) 
     at clojure.lang.RT.load(RT.java:426) 
     at clojure.core$load$fn__6548.invoke(core.clj:6046) 
     at clojure.core$load.invokeStatic(core.clj:6045) 
     at clojure.core$load.doInvoke(core.clj:6029) 
     at clojure.lang.RestFn.invoke(RestFn.java:408) 
     at clojure.core$load_one.invokeStatic(core.clj:5848) 
     at clojure.core$load_one.invoke(core.clj:5843) 
     at clojure.core$load_lib$fn__6493.invoke(core.clj:5888) 
     at clojure.core$load_lib.invokeStatic(core.clj:5887) 
     at clojure.core$load_lib.doInvoke(core.clj:5868) 
     at clojure.lang.RestFn.applyTo(RestFn.java:142) 
     at clojure.core$apply.invokeStatic(core.clj:659) 
     at clojure.core$load_libs.invokeStatic(core.clj:5925) 
     at clojure.core$load_libs.doInvoke(core.clj:5909) 
     at clojure.lang.RestFn.applyTo(RestFn.java:137) 
     at clojure.core$apply.invokeStatic(core.clj:659) 
     at clojure.core$require.invokeStatic(core.clj:5947) 
     at clojure.main$loading__6434__auto____8543.invoke(main.clj:11) 
     at clojure.main__init.load(Unknown Source) 
     at clojure.main__init.<clinit>(Unknown Source) 
     ... 55 more 

と私はファイルclojure/spec/alpha__init.classまたはclojure/spec/alpha.cljを持っていないとして、それが表示されます私は運が忘れています。

1.9.0のJARファイルからWindows上ですべてのJARファイルを実行するためのステップバイステップがありますか?

すべての提案が歓迎されました。

答えて

3

TL; DR:

またorg.clojure/spec.alphaorg.clojure/core.specs.alphaをダウンロードする必要があります。その後で始まる:

java -cp clojure-1.9.0-alpha17.jar;spec.alpha-0.1.123.jar;core.specs.alpha-0.1.10.jar clojure.main 

(お使いのバージョンが異なるがあることを、注意してください。そしてOSのUnixの家族のために;: instadがあるでしょう)。知ると、αサブ名前空間にスペックのための専用の成果物を使用するのClojureの最近の変更に伴い、他のDEPSに

を取得する方法

、それだけで簡単なREPLを起動することはもはや簡単ではありません普通の瓶(例えば、java -jar $CLOJURE_JAR clojure.main)。だから今それを始めるには?あなたは、どこかlein newを行うあなたが好きなバージョンにorg.clojure/Clojureの依存関係を変更し、必要とされていることすべてを取得し、どのようなものorg.clojureを表示するlein deps :treeを行うにはオフに優れている前のよう

/コアは今のところ依存しています。例えば。

[org.clojure/clojure "1.9.0-alpha17"] 
    [org.clojure/core.specs.alpha "0.1.10" :exclusions [[org.clojure/clojure] [org.clojure/spec.alpha]]] 
    [org.clojure/spec.alpha "0.1.123" :exclusions [[org.clojure/clojure]]] 

すべての成果物は~/.m2/repositoryになります。次に、クラスパスを構築してREPLを呼び出す必要があります。そのダミープロジェクトでlein with-profile uberjar cpを実行して、Leiningenが使用しているクラスパスを取得できるようになりました。例えば:

$ lein with-profile uberjar cp 
/tmp/xxx/test:/tmp/xxx/src:/tmp/xxx/resources:/tmp/xxx/target/classes:/home/user/.m2/repository/org/clojure/clojure/1.9.0/clojure-1.9.0.jar:/home/user/.m2/repository/org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar:/home/user/.m2/repository/org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar 
# this will be `;` instead of `:` as well here for windows 

テストSRC、およびリソースなものを削除し、それはあなたが-cpに渡す持っているもの、です。 Getting Startedclojure CLIで述べたように

フューチャーソリューション

は、Windows用にはまだ利用できません。

+1

この回答ありがとうございます! Windows上で実行するために必要な変更は、 ':'の代わりにクラスパスの区切りとして ';'を使用することです: java -cp clojure-1.9.0.jar; spec。alpha-0.1.143.jar; core.specs.alpha-0.1.24.jar clojure.main' – JBiserkov

+0

@JBiserkovヒントありがとう。私は答えを更新します。 – cfrick

関連する問題