Eclipse で Java8!
Eclipse ではまだ Java8 に対応していません。(正式にリリースされていないのであたり前)
Eclipse 以外の IDE (IntelliJ IDEA, NetBeans など) だと実行はできるようですが、Eclipse ではコンパイルすらできません。
これは Eclipse が JDK のコンパイラではなく内蔵のコンパイラを使用していることに起因しています。
ただ、このままでは納得がいかないので、頑張って Eclipse でも Java8 を実行してみたいと思います。
Eclipse の設定
プロジェクトの設定
Eclipse 内蔵コンパイラを実行している犯人は「Java Builder」です。
なので、Java Builder ではなく Ant によりコンパイルをするように変更してしまいます。
コンパイラの指定
Ant の記述
プロジェクトの適当な位置に build.xml を作成します。
内容はこんな感じで。
<?xml version="1.0" encoding="UTF-8"?> <project name="project" basedir="." default="compile"> <target name="compile"> <mkdir dir="bin" /> <javac srcdir="src" destdir="bin" debug="true" debuglevel="lines,vars,source" /> </target> <target name="clean"> <delete dir="bin" failonerror="false" /> </target> </project>
デバッグ実行ができるように、javac タスクにはデバッグ用のオプションも指定しておきます。
ソースディレクトリや出力先ディレクトリの指定は必要に応じて。
実行してみる
Java の記述
import java.util.Arrays; import java.util.Collections; import java.util.List; public class HelloJava8 { public static void main(String[] args) { List<Integer> list = Arrays.asList(10, 12, 8, 5); // 降順にソート Collections.sort(list, (o1, o2) -> o2 - o1); System.out.println(list.toString()); } }
ビルドする
C:\workspace\hello-java8\build.xml:5: Class not found: javac1.8
どうやら Eclipse 4.2 にバンドルされている Ant(1.8.3) がバグって]おり、Java8 のコンパイルができなくなっている模様。
Ant ランタイムを変更
Apache Ant の 1.8.2*1 をダウンロードして、適当な場所に展開。
Eclipse の Preferences -> Ant -> Runtime で Ant Home に Ant 1.8.2 の展開先ディレクトリを指定。
まとめ
なんか色々と納得のいかない箇所がありますが、とりあえず新しい機能を試したりする分には問題無さそうです。
Java8 が正式にリリースされた暁には問題なく動くにようになることと思います。
*1:最新バージョン(2012/07/16現在) の 1.8.4 でもダメだった