[#CLJ-2077] Clojure can't be loaded from the boot classpath under java 9 - Clojure JIRA
https://dev.clojure.org/jira/browse/CLJ-2077
# jarをダウンロード $ wget 'https://search.maven.org/remotecontent?filepath=org/clojure/clojure/1.8.0/clojure-1.8.0.jar' # clojure.mainを呼んでみる $ java -client -Xbootclasspath/a:./clojure-1.8.0.jar \ clojure.main -e "(println \"hello\")"
# java.sql.Timestampが見つからないと怒られる Exception in thread "main" java.lang.ExceptionInInitializerError ... Caused by: java.lang.ClassNotFoundException: java.sql.Timestamp ...
clojure 1.9 beta1 で対処することになったが、clojure 1.8 までは変更しないことに
# jarをダウンロード $ wget 'https://search.maven.org/remotecontent?filepath=org/clojure/clojure/1.9.0-beta2/clojure-1.9.0-beta2.jar' $ wget 'https://search.maven.org/remotecontent?filepath=org/clojure/spec.alpha/0.1.134/spec.alpha-0.1.134.jar' # clojure.mainを呼んでみる $ java -client -Xbootclasspath/a:./clojure-1.9.0-beta2.jar:./spec.alpha-0.1.134.jar \ clojure.main -e "(print \"hello\")"
(clojure1.9からclojure.jarとspec.alpha.jarが必要)
その他の回避策
Java 9 incompatibility · Issue #2149 · technomancy/leiningen
https://github.com/technomancy/leiningen/issues/2149
leinのシェルスクリプトファイルから、BOOTCLASSPATH変数を設定する箇所をコメントアウト
そろそろ設定をスキップできるようになるかも
Release 2.8.0-RC1 · technomancy/leiningen
https://github.com/technomancy/leiningen/releases/tag/2.8.0-RC1
"Support skipping bootclasspath for Java 9 compatibility. (Phil Hagelberg)"
どうしてもbootcalasspath/aを指定したいなら、java 8までか、clojure 1.9 beta1以降 (現在 beta2)を使おう。
0 件のコメント :
コメントを投稿