Eclipse 4.3.1 + JDT beta で Java8
現時点(2014-02-05)において、EclipseでJava8を使いたい場合は、Eclipse 4.3.1 (Kepler SR1) にJDTのJava8対応ベータ版を別途インストールすれば良さそうです。
本体の正式リリース後も、次期バージョン(Luna)を待たずに、同じ方法で使える見込みです。
環境
セットアップ
Eclipse Java Development Tools Patch for Java 8 Support (BETA)(以下、JDTbetaと表記)については、下記ページを参照。
JDTbetaは、4.3.1, 4.4.M2(Luna)が対象となっています。KeplerはSR1以降、LunaはM2以降で使えるようです。
また、4.4.M5にはまだ標準搭載はされていません。
今回は、開発中のEclipseを使いたいわけではないので、一般向け最新版のKepler SR1で試してみることにします。
Keplerはダウンロードページから最新版をダウンロードし、インストールします。
Eclipseを起動したら、Install New Software
を開き、下記URLを入力してJDTbetaを追加でインストールします。
あわせて、JDK8をInstalled JREs
(インストール済みJRE)に設定します。
以上で、EclipseでJava8を使う準備ができました。
Java8のサポート状況
主に新しい言語機能について確認しました。具体的には、
は、サンプル程度であれば問題なく使えます。
気になったことは2つあります。
1つ目は、「実行時のパラメーター名へのアクセス」です。
コンパイラーの設定(プロジェクトのプロパティーのJavaコンパイラー)で、"Store method parameter names (usable via reflection)"にチェックを入れるとパラメーター名付きでコンパイルされるようになるのですが、clean
でリビルドすると、パラメーター名が付加されない状態でコンパイルされてしまいます。個別にコンパイル(保存するときの自動ので)すると、ちゃんと付いています。
2つ目は、ある組み合わせのラムダ式のある位置から下で、補完が利かないときがあったということ。
ただし、こちらは再現方法が良く分かりません。制御文に関係していたと思うんですけどね...
追記(2014-02-09): もう1つ見つけました。配列のコンストラクター参照がコンパイルエラーになります。
例えば、Stream#toArray
に配列のコンストラクター参照を指定すると発生します。
Java8対応版JDTの今後
今後のJava8対応版JDTは、
- 2014-02-17にRC0がリリース予定
- 2014-03-18には、General availabilityがリリース予定
となっています。本体のリリースと同時に、こちらも一般向けリリースされるみたいです。
ついでにKeplerの使い勝手
私の環境はいまだにIndigo SR2 (v3.7.2)がメインで、Junoの時は導入を見送っていました。
Kepler SR1に標準搭載されているEGitはv3.0.3で、ついに「MacOSX上のGit共有リポジトリをHTTPSで公開してプロキシ経由でWindowsからアクセス」の環境でfetch/push
ができるようになりました。他にも、気になっていた点(EGitは残念?)がいくつか解消されているようです。
それ以外は、慣れれば問題なさそうです。
感想
EGitに加えてJava8が使えるようになってしまったら、たぶん性能も良くなってるし、これはもう、Indigoから乗り換えざるを得ないでしょう。(主に私が。)
当分は併用してみることにします。