Clojure はこの方法でインストールできますか?
-
10-10-2019 - |
質問
Clojure 1.2をダウンロードしました https://github.com/downloads/clojure/clojure/clojure-1.2.0.zip 、/Libraryディレクトリの下にそれを抽出し、CLOJURE_HOMEを作成し、$CLOJURE_HOME/scriptを$PATHに追加しました。
script ディレクトリにある clj または repl スクリプトを実行しようとすると、次のエラーが発生します。
スレッド「メイン」java.lang.NoClassDefFoundError での例外:ジライン コンソールランナー 原因はこれだ:java.lang.ClassNotFoundException:コンソールランナー at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
jline.jar が CLASSPATH にないので、clj スクリプトと repl スクリプトを確認しました。
CLASSPATH=src/clj:test:test-classes:classes/:script/jline-0.9.94.jar:../clojure-contrib/target/clojure-contrib-1.2.0-SNAPSHOT.jar
if [ -z "$1" ]; then
exec java -server jline.ConsoleRunner clojure.main
else
SCRIPT=$(dirname $1)
export CLASSPATH=$SCRIPT/*:$SCRIPT:$CLASSPATH
exec java -Xmx3G -server clojure.main "$1" "$@"
fi
$CLOJURE_HOME/script の下に jline.jar をダウンロードしましたが、依然として同じエラーが発生します。
ここから次のような疑問が生まれます。
の役割は何ですか https://github.com/downloads/clojure/clojure/clojure-1.2.0.zip ともかく?
Clojure のインストールに使用することを想定していますか?それともclojure.jarをビルドして入手するだけですか?
この方法で Clojure をインストールすることについて話している人は誰もいないことに気づきました。
何かが足りないのでしょうか?
解決
Clojure は JVM 言語であるため、JVM クラスパスを処理する必要があります。そのため、「インストール」は少し扱いにくく、混乱を招きます。このように自分でインストールするのではなく、cljr や Cake などのツールを試してください。これについて役立つかもしれないブログ投稿を書きました。 http://blog.raynes.me/?p=48
要約すれば:チェックアウト cljr, ケーキ, 、 そして ライニンゲン.
Clojure コミュニティのほとんどの人は Clojure を「インストール」していません。ほとんどの人はビルド ツールや cljr を使用します。必然的に依存関係の管理が必要になり、いずれにしても jar があらゆる場所にコピーされることになる場合、Clojure を中央の場所にインストールすることはあまり意味がありません。いずれの場合でも、ツールにクラスパスを処理させる方がはるかに簡単です。
他のヒント
clojure.zipファイルが存在するため、ツールを書く人は、必要な部品を取得するためのツールを備えています。)
ツールを書いていない人のために、彼らはGitHubの最新のブランチで作業しているため、git PullでClojureを取得するか、上記のLiningen、Cake、cljr、反時計回り(Eclipse)、La Clojure(Intellij)を使用しています。またはnetbeans。