Gradleを導入して(もしくは導入されているリポジトリをクローンして)buildしようとしたときによく出くわすこれ。頻繁にする作業じゃないので,毎回どこ弄るんだっけなって迷子になるので,メモ。
要するにJavaHomeが適切に設定されてませんよってことなんですね。
Wanted: DefaultDaemonContext... javaHome=/.../IntelliJ IDEA.app/.../jdk/...
って感じで,「IntelliJ IDEAが持ってるJDK使いたいんだけど・・・」
Actual: DefaultDaemonContext... javaHome=/Library/.../...
ってな具合に「実際には○○にあるよー」って,言われてます。
実際にある場所も教えてくれてるので,このプロジェクトでもそのjavaHomeを使うように指示してあげればいいわけなんですが,IntelliJのプロジェクト設定なんかをで適切に設定しても反映されないんですよね。
あれー?
というわけで,ここで弄らなければいけないのが,
gradle.properties
それもそのはず,このメッセージはGradleを使ってbuildしようとしているときに出ているメッセージなので,Gradleに「このjavaHome使えよ」って教えてあげなくちゃいけない。
IntelliJからGradleを使ってビルドするとき,デフォルトではIntelliJのJDKを使うようになっているみたい(深入りしてないのでざっくり理解です。詳しい方,ご指摘ください)。
というわけで,Gradleが使うjavaHomeを指定するために,gradle.propertiesにjavaHomeを指定する一文を追加。
org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home
私の環境ならこんな感じ。/Library/…のパスは,先ほどActual:…でエラーメッセージが教えてくれていたパスです。実際のjavaHomeの在処を教えただけ。
もちろん,javaのバージョンなど特定のjdkを意図的に設定する場合はそのパスを入れればいいわけです。
これですんなりbuildできました。
ビルドツール全然使いこなせないけど,確かに便利だなあ。
ゆっくり勉強したいな・・・
コメント