LoginSignup
22
20

More than 5 years have passed since last update.

AndroidでJava8を使う時の設定手順

Posted at

Why Java8?

lambdaやoptionalを使うために、Java8で開発したいという欲求からです。
kotlin使ってる人はkotlinの方がいいと思います。

Check current java version

java -version で確認しましょう。

% java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

コンパイルバージョンも確認。

% javac -version
javac 1.7.0_71

インストールされている全てのJavaバージョンを確認。

% /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    1.7.0_71, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
    1.6.0_65-b14-462, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Java8をダウンロードとインストール

Oracleのページへ。 jdk-8u60-macosx-x64.dmg でいいはずです。

ダウンロードしたdmgファイルを叩いてインストールを完了させると、javaバージョンが切り替わっているはずです。

% java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
% javac -version
javac 1.8.0_60

Set JAVA8_HOME env

JAVA_HOME を設定します。

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

AndroidはまだJava8に対応していないので、retrolambdaというライブラリを使います。retrolambdaをうまいことコンパイルするためにgradle-retlolambdaというgradleプラグインを使います。

gradle-retrolambdaは、 JAVA8_HOME にpathを通すように言ってくるので設定します。

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> When running gradle with java 5, 6 or 7, you must set the path to jdk8, either with property retrolambda.jdk or environment variable JAVA8_HOME

環境変数は以下のように設定します。

export JAVA8_HOME=`/usr/libexec/java_home -v 1.8`

.zshrc などに書いておいてもいいです。

export JAVA8_HOME=$/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

Pass JAVA8_HOME env to Android

Android Studioに環境変数を渡すように設定しないと、 gradleで JAVA8_HOME を読み取れないので設定します。

launchctl setenv JAVA8_HOME $JAVA8_HOME

ref: AndroidStudioに環境変数を渡す

以上です。

22
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
20