IntelliJ IDEAでつまづかない為に (Project Structure)

僕が一番おススメしている、IDEが、
Intellij IDEAなんですが、
最初のセットアップで躓く方が案外多くて、
折角の価値に気付いてもらえない事がとても悲しく思います。

今なら、大半のプロジェクトではGradleを利用しているかと思いますが、
./gradlew idea とするだけで、セットアップは終わるよ!
という状況にも関わらず、IDEAにインポートするところでうまくいかない。

なので、最初に躓きやすいポイントと、
ProjectStructure という設定項目について記載しておこうと思います。

追記

最近のIDEAは、Directory base形式のフォーマットを推奨しているため、
./gradlew ideaを叩く必要はありません。
追加記事: ./grdlew idea 叩かなくていいよ。

ProjectStructureとは

ざっくりいうと
プロジェクト設定です。

File > ProjectStructure から開くことができます。
command + ; で開くこともできる。

ただ、個々のプロジェクトだけではなく、JDKや、他の依存フレームワークなどのライブラリ設定など。
IDEA自体の全体設定も担っているので、
あ、ここで設定するんだー
という感じで面食らいます。

よくあるつまずきポイント

コンパイルできない

Cannot start compiler:
などのエラーが発生する。

JAVA_HOMEを認識しない

javaはインストールされているんだけど、
JAVA_HOMEが認識できない

The newly created daemon proces> s has a different context than expected.
Java home is different> .
Expecting: '/Applications/IntelliJ IDEA.app/Contents/jdk/Contents/Home' but was: '/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home'.
Please configure the JDK to match the expected one.
Open JDK Settings

Javaファイルとかを認識してくれない

プロジェクトを読み込んだんだけど、
javaファイルを正しく認識していない
構文エラーだらけになる

Gradleを認識しない

Gradle SDKが存在しないと言われる。

JDKがインストールされている事

JDKインストールされている事
IDEAをインストールしてもJDKは、別途Oracleからインストールする必要があります。

インストールされているJDKのPathは、java_homeコマンドを使えば、一覧取得する事ができます。

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
    1.8.0_65, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
    1.8.0_11, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home

bashrcや、zshrcなどで、JAVA_HOME環境変数を設定していない場合は、一番上位に表示されているJDKが利用される事になります。

$ java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

不要なJDKについては、*.jdkディレクトリから、削除することでアンインストールする事ができます。

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk

利用したいJDKが正しくインストールされている事を確認しましょう。

ProjectStructure を確認しよう

これらの問題は、ProjectStructureで大体解決出来る問題です。

SDKsの設定が正しい事

ProjectStructure > Platform Settings > SDKs

ここにIDEAが認識している、JDKなど、Ruby, Pythonなど色々なSDKのPATHが一括管理されています。
もし、ここに1.8 や9.0など、JDKの項目がなければ、IDEAがJDKを認識していない状況となっています。

+ボタンを押して、JDKから、JavaHomeのディレクトリを選択して追加しましょう。
また、項目はあるが、pathが間違っている場合もあります。
一度削除して、追加するなどで正しいpathになっているか確認しましょう。

設定例

Name: 1.8 
JavaHome: /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home

Project SDKが正しい事

ProjectStructure > Project Settings > Project

Project SDKに、先程設定したJDKが選択されている事。

Gradleが…
JavaHome が…
とか色々、エラーが出ますが、
大体ここまでの設定ができていない事が大半です。

ここまでが間違っていると、以降の処理が全てうまくいかなくなります。

Gradle同期をしよう

Gradleプロジェクトを正しく認識していない時は、Gradle Syncボタンを押してbuild.gradleと設定を同期しましょう。

左下のサイドバー表示ボタンを押すと出てきます。

そもそも、Gradle Toolバーがないよ
という時は、JDKを認識してない事が多いです。

上述のJDK,SDKs,ProjectSDKをチェックしてみましょう。

~/.gradleを削除してみよう

最後に、Gradle Syncボタンを押すけど、エラーが発生する場合も極たまにあります。

その場合、gradleでインストールしたライブラリが壊れている可能性があるので、
ホームディレクトリにある .gradle ディレクトリを削除してみましょう。

rm -rf ~/.gradle

削除後は再度、GradleSyncボタンを押すか、./gradlew idea を叩いて、再度インポートすると良いでしょう。

コメントを残す