6

これがSOの話題から外れていないことを願っています(SOとprogrammers.stackexchangeの間で躊躇しました)が、私が知る限り、これは「プログラミングの専門家に固有の実用的で回答可能な問題」であるため、FAQに準拠しています。

どのバージョンの Clojure を実行するには、どのバージョンの JVM が必要ですか (JVM 上の Clojure、この質問は ClojureScript に関するものではありません)。

ここのページ: http://clojure.org/getting_startedには、次のように記載されています。

Clojure には Java 1.5 以降のみが必要です

しかし、これは常に当てはまるのでしょうか?

Leiningen のような Clojure エコシステムはどうでしょうか?

基本的に、Clojure を利用して、OS X システムなど、Java 6 や Java の最新バージョン (たとえば、一部の OS X バージョンの Apple は、JVM 6 が光を見ることはないと述べています)。

4

3 に答える 3

5

私は Clojure/コア チームに所属していないため、内部情報はありませんが、この状況に対処する方法を次に示します。

Clojure の最新バージョン (この記事の執筆時点では 1.5) を使用して、Java 1.5 に対してテストし、実行する必要があること、使用する必要のある Clojure ライブラリを確認してください。Clojure 1.5 が Java 1.5 互換である場合、そのリリースは不変であるため、常に互換性があります。

1.5 以降のすべての Clojure バージョンが Java 1.5 と互換性があるとは想定していませんし、Clojure ライブラリがそうであるとは絶対に想定できませんたとえば、Java 1.7 を必要とする Clojure ライブラリをリリースしました (Java 1.7 で導入された java.util.concurrent クラスを使用しているため)。

Leiningen は、すべてのライブラリと選択したバージョンの Clojure を Java 1.5 に対してテストして動作する場合、maven のような依存関係の解決を提供するため、アプリを実行し続けたい限り、そのバージョン管理された依存関係のセットを使い続けることができます。その時点での唯一のリスクは、非コア ライブラリの一部のバグ修正リリースが Java 1.5 と互換性がなくなる可能性があることです。このリスクは、使用する必要があるコア以外の Clojure ライブラリの数に比例します。

于 2013-03-10T16:34:32.793 に答える
3

使用するライブラリを選択する場合は、Java1.5をターゲットにすることは確かに実行可能です。

  • Clojureは、Javaのバージョン要件について非常に保守的です。したがって、バージョン1.5のみに依存しています。
  • 多くのライブラリはClojure自体にのみ依存しているため、1.5JVMで非常に正常に実行されます。
  • 一部のライブラリは>1.5を必要としますが、これらは特定のJava機能(新しい同時実行コードなど)との相互運用が必要な、より高度なライブラリになる傾向があります。

:私は個人的にすべてのアプリ/ライブラリをJava 1.6をターゲットに作成しています。これは妥当な最小値であり、Javaベースのシステムの大部分は1.6以上であるためです。1.5に固執している数人のユーザーが失われる可能性があるので、私は喜んで生きていきます。また、Clojureの将来のバージョンが1.5を放棄したとしても、Java1.6のサポートは長期間続くと思います。

于 2013-03-11T05:05:04.107 に答える
0

特に、Clojure 1.6 では、Java のバージョンを 1.6 に上げました。

Clojure 1.6 リリース ノートには次の チケットが含まれています: CLJ-1268: Clojure には Java 1.6 が必要

したがって、「いいえ」は、「しかし、[Clojure は Java 1.5 以降のみを必要とする] は常に当てはまるのでしょうか?」という元の投稿者の質問に対する答えです。

于 2015-10-01T04:49:04.117 に答える